Class: VitableConnect::Organizations::Client
- Inherits:
-
Object
- Object
- VitableConnect::Organizations::Client
- Defined in:
- lib/VitableConnect/organizations/client.rb
Instance Method Summary collapse
-
#create(request_options: {}, **params) ⇒ VitableConnect::Types::Organization
Onboards the authenticated user's partner Organization: creates the local Organization + the creator's admin membership atomically, then mirrors it to WorkOS (creates the WorkOS org and binds the creator as admin).
- #initialize(client:) ⇒ void constructor
-
#list(request_options: {}, **_params) ⇒ VitableConnect::Types::OrganizationsListResponse
Lists the organizations the authenticated caller is an active member of (paginated), each with the role the caller holds in it.
Constructor Details
#initialize(client:) ⇒ void
9 10 11 |
# File 'lib/VitableConnect/organizations/client.rb', line 9 def initialize(client:) @client = client end |
Instance Method Details
#create(request_options: {}, **params) ⇒ VitableConnect::Types::Organization
Onboards the authenticated user's partner Organization: creates the local Organization + the creator's admin
membership atomically, then mirrors it to WorkOS (creates the WorkOS org and binds the creator as admin). A user
may hold several organizations and selects which one a request acts as with the X-Vitable-Organization header.
The founder's email domain is claimed only when no other organization holds it, so a taken domain is left with
its owner rather than rejected.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/VitableConnect/organizations/client.rb', line 70 def create(request_options: {}, **params) params = VitableConnect::Internal::Types::Utils.normalize_keys(params) request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "POST", path: "v1/organizations", body: VitableConnect::Organizations::Types::CreateOrganizationRequest.new(params).to_h, request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) VitableConnect::Types::Organization.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |
#list(request_options: {}, **_params) ⇒ VitableConnect::Types::OrganizationsListResponse
Lists the organizations the authenticated caller is an active member of (paginated), each with the role the caller holds in it. Returns an empty list when the caller belongs to no organizations.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/VitableConnect/organizations/client.rb', line 28 def list(request_options: {}, **_params) request = VitableConnect::Internal::JSON::Request.new( base_url: [:base_url], method: "GET", path: "v1/organizations", request_options: ) begin response = @client.send(request) rescue Net::HTTPRequestTimeout raise VitableConnect::Errors::TimeoutError end code = response.code.to_i if code.between?(200, 299) VitableConnect::Types::OrganizationsListResponse.load(response.body) else error_class = VitableConnect::Errors::ResponseError.subclass_for_code(code) raise error_class.new(response.body, code: code) end end |