Class: Whop_sdk::Users::OauthGrants::Client
- Inherits:
-
Object
- Object
- Whop_sdk::Users::OauthGrants::Client
- Defined in:
- lib/whop_sdk/users/oauth_grants/client.rb
Instance Method Summary collapse
-
#create(request_options: {}, **params) ⇒ Whop_sdk::Types::OauthGrant
Completes the OAuth authorization step for the authenticated user: records their consent for the scopes an app asked for and mints the authorization code to hand back to it.
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **params) ⇒ Whop_sdk::Users::OauthGrants::Types::ListOauthGrantsResponse
Lists the authenticated user's own OAuth grants — one per app they have authorized, per account they authorized it for.
Constructor Details
#initialize(client:) ⇒ void
10 11 12 |
# File 'lib/whop_sdk/users/oauth_grants/client.rb', line 10 def initialize(client:) @client = client end |
Instance Method Details
#create(request_options: {}, **params) ⇒ Whop_sdk::Types::OauthGrant
Completes the OAuth authorization step for the authenticated user: records their consent for the scopes an app
asked for and mints the authorization code to hand back to it. Returns the grant, plus a redirect_url
carrying that code — the one and only time it is returned. Exchange the code at POST /oauth/token with the
verifier for code_challenge. Requires a user session, because consent has to come from the account holder:
an API key or an OAuth token is refused, so an app can never authorize itself. Send an Idempotency-Key to
make a retry safe — a replay returns the original redirect_url and its code rather than issuing a second
one.
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/whop_sdk/users/oauth_grants/client.rb', line 104 def create(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "users/me/oauth_grants", body: Whop_sdk::Users::OauthGrants::Types::CreateOauthGrantsRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) Whop_sdk::Types::OauthGrant.load(response.body) else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list(request_options: {}, **params) ⇒ Whop_sdk::Users::OauthGrants::Types::ListOauthGrantsResponse
Lists the authenticated user's own OAuth grants — one per app they have authorized, per account they authorized it for. The list is always the caller's own; there is no parameter for reading another user's grants. Requires a user session: an API key or an OAuth token is refused, so an app can never enumerate the other apps a user has authorized.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/whop_sdk/users/oauth_grants/client.rb', line 38 def list(request_options: {}, **params) params = Whop_sdk::Internal::Types::Utils.normalize_keys(params) query_params = {} query_params["app_id"] = params[:app_id] if params.key?(:app_id) query_params["first"] = params[:first] if params.key?(:first) query_params["after"] = params[:after] if params.key?(:after) query_params["last"] = params[:last] if params.key?(:last) query_params["before"] = params[:before] if params.key?(:before) query_params["order"] = params[:order] if params.key?(:order) query_params["direction"] = params[:direction] if params.key?(:direction) Whop_sdk::Internal::CursorItemIterator.new( cursor_field: :end_cursor, item_field: :data, initial_cursor: query_params["after"] ) do |next_cursor| query_params["after"] = next_cursor request = Whop_sdk::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "users/me/oauth_grants", query: query_params, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise Whop_sdk::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) parsed_response = Whop_sdk::Users::OauthGrants::Types::ListOauthGrantsResponse.load(response.body) [parsed_response, response] else error_class = Whop_sdk::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end end |