clerk-sdk-ruby 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 487a2987f913d5c256ebad719075bbb121af707bc5e2419f12d886f4a7a643f2
4
- data.tar.gz: 28af474ba5555c26fafb0f64e4969030f0b4fc56ca3df4db3faca0a3855fd5a2
3
+ metadata.gz: a63fa1a8677b50586e50404f49bc11c2b281fa99c2dd56e22f932f14a10c28ad
4
+ data.tar.gz: 797d3896292214650cd3caf2065d84fe36a6667ab24e2989ccedcde3c0b97b30
5
5
  SHA512:
6
- metadata.gz: 307f730b9fa19db0e74954e33241f917699af10d876a8314d309366ff43930c7531d204d6c939003b18cee98d4189ffbd56bc8ea12ac1536e4b7d35be68f3057
7
- data.tar.gz: eef7c69d6d233a80f4c4bbd2df328c9fa3ed74cdfaa0548f1200601d1e632906f403c89e6055698c8e092e9923344202501f742be5a183ea774b59ccaecb9143
6
+ metadata.gz: 6194a064d7505ff5d9940e27a37842006401158c60f673f1f3b5425a5da4a52d05b7d77aa984495a9006e77fe376c2a7abedce1086c5c76f5e9430d13bd65a46
7
+ data.tar.gz: ab494cc80de603e5c9bd15b751219bdbef0ababcd611f9c190f9e1167d4b6abc6328556fcc6dc26521cc449529c028007102d1c15dfe72287056db11eb3ff05e
@@ -49,6 +49,18 @@ module Clerk
49
49
  request.env["clerk"].user_id
50
50
  end
51
51
 
52
+ # Makes a request to the Clerk API to fetch the data of the authenticated
53
+ # session's organization. If caching is configured (see
54
+ # Config.middleware_cache_store), subsequent calls will return the cached
55
+ # object.
56
+ def clerk_organization
57
+ request.env["clerk"].org
58
+ end
59
+
60
+ def clerk_organization_id
61
+ request.env["clerk"].org_id
62
+ end
63
+
52
64
  def clerk_user_signed_in?
53
65
  !!clerk_verified_session_claims
54
66
  end
@@ -69,7 +81,8 @@ module Clerk
69
81
  helper_method :clerk_session, :clerk_reverify_session!,
70
82
  :clerk_verified_session_claims, :clerk_verified_session_token,
71
83
  :clerk_user, :clerk_user_id, :clerk_user_signed_in?, :clerk_sign_in_url,
72
- :clerk_sign_up_url, :clerk_user_profile_url
84
+ :clerk_sign_up_url, :clerk_user_profile_url,
85
+ :clerk_organization, :clerk_organization_id
73
86
  end
74
87
  end
75
88
  end
@@ -36,6 +36,18 @@ module Clerk
36
36
  @session_claims["sub"]
37
37
  end
38
38
 
39
+ def org
40
+ return nil if org_id.nil?
41
+
42
+ @org ||= fetch_org(org_id)
43
+ end
44
+
45
+ def org_id
46
+ return nil if user_id.nil?
47
+
48
+ @session_claims["org_id"]
49
+ end
50
+
39
51
  private
40
52
 
41
53
  def fetch_user(user_id)
@@ -44,6 +56,12 @@ module Clerk
44
56
  end
45
57
  end
46
58
 
59
+ def fetch_org(org_id)
60
+ cached_fetch("clerk_org:#{org_id}") do
61
+ sdk.organizations.find(org_id)
62
+ end
63
+ end
64
+
47
65
  def cached_fetch(key, &block)
48
66
  if store = Clerk.configuration.middleware_cache_store
49
67
  store.fetch(key, expires_in: CACHE_TTL, &block)
@@ -105,7 +123,7 @@ module Clerk
105
123
  rescue JWT::DecodeError
106
124
  return signed_out(env) # malformed JSON authorization header
107
125
  end
108
-
126
+
109
127
  token = verify_token(header_token)
110
128
  return signed_in(env, token, header_token) if token
111
129
 
@@ -13,6 +13,14 @@ module Clerk
13
13
 
14
14
  def_delegators :@resource, :all, :find, :create, :update, :delete
15
15
 
16
+ def update_metadata(org_id, private_metadata: {}, public_metadata: {})
17
+ data = {}
18
+ data["private_metadata"] = private_metadata.to_json if !private_metadata.empty?
19
+ data["public_metadata"] = public_metadata.to_json if !public_metadata.empty?
20
+
21
+ @client.request(:patch, "#{@resource.resource_path(org_id)}/metadata", body: data)
22
+ end
23
+
16
24
  #
17
25
  # Invitations
18
26
  #
data/lib/clerk/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Clerk
4
- VERSION = "2.6.0"
4
+ VERSION = "2.7.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clerk-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Clerk
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-01 00:00:00.000000000 Z
11
+ date: 2022-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday