Class: DatabasusRuby::Workspaces
- Includes:
- Endpoint
- Defined in:
- lib/databasus_ruby/objects/workspaces.rb,
sig/databasus_ruby.rbs
Overview
Workspaces, their members and their audit trail.
workspace = client.workspaces.create(name: "production")
client.workspaces.add_member(workspace.id, email: "ops@example.com",
role: "WORKSPACE_ADMIN")
Note that the membership endpoints live under /workspaces/memberships/id, where id is still the workspace id.
Constant Summary collapse
- MEMBER_ROLES =
%w[WORKSPACE_OWNER WORKSPACE_ADMIN WORKSPACE_MEMBER WORKSPACE_VIEWER].freeze
Instance Attribute Summary
Attributes included from Endpoint
Instance Method Summary collapse
-
#add_member(id, email:, role:) ⇒ Object
POST /workspaces/memberships/id/members — adds an existing user or invites a new one; the response
statussays which happened (ADDED or INVITED). -
#audit_logs(id, limit: nil, offset: nil, before_date: nil) ⇒ Collection
GET /workspaces/id/audit-logs.
-
#change_member_role(id, user_id, role:) ⇒ Boolean
PUT /workspaces/memberships/id/members/userId/role.
-
#create(name:) ⇒ Object
POST /workspaces.
-
#delete(id) ⇒ Boolean
DELETE /workspaces/id.
-
#get(id) ⇒ Object
(also: #find)
GET /workspaces/id.
-
#list ⇒ Collection
(also: #all)
GET /workspaces — the workspaces the current user belongs to.
-
#members(id) ⇒ Collection
GET /workspaces/memberships/id/members.
-
#remove_member(id, user_id) ⇒ Boolean
DELETE /workspaces/memberships/id/members/userId.
-
#transfer_ownership(id, new_owner_email:) ⇒ Boolean
POST /workspaces/memberships/id/transfer-ownership.
-
#update(id, **attributes) ⇒ Object
PUT /workspaces/id.
Methods included from Endpoint
#acknowledged, #build, #collection, #compact, #escape, #http_delete, #http_get, #http_post, #http_put, #initialize, #inspect, #object, #single_value, #with_default_workspace
Methods inherited from Object
#==, #[], #hash, #initialize, #inspect, #key?, #keys, #method_missing, #respond_to_missing?, #to_h
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class DatabasusRuby::Object
Instance Method Details
#add_member(id, email:, role:) ⇒ Object
POST /workspaces/memberships/id/members — adds an existing user or
invites a new one; the response status says which happened
(ADDED or INVITED). role is one of MEMBER_ROLES.
60 61 62 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 60 def add_member(id, email:, role:) object(http_post("workspaces/memberships/#{escape(id)}/members", { email: email, role: role })) end |
#audit_logs(id, limit: nil, offset: nil, before_date: nil) ⇒ Collection
GET /workspaces/id/audit-logs
46 47 48 49 50 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 46 def audit_logs(id, limit: nil, offset: nil, before_date: nil) response = http_get("workspaces/#{escape(id)}/audit-logs", { limit: limit, offset: offset, beforeDate: before_date }) collection(response, key: "auditLogs") end |
#change_member_role(id, user_id, role:) ⇒ Boolean
PUT /workspaces/memberships/id/members/userId/role
70 71 72 73 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 70 def change_member_role(id, user_id, role:) acknowledged(http_put("workspaces/memberships/#{escape(id)}/members/#{escape(user_id)}/role", { role: role })) end |
#create(name:) ⇒ Object
POST /workspaces
25 26 27 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 25 def create(name:) object(http_post("workspaces", { name: name })) end |
#delete(id) ⇒ Boolean
DELETE /workspaces/id
41 42 43 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 41 def delete(id) acknowledged(http_delete("workspaces/#{escape(id)}")) end |
#get(id) ⇒ Object Also known as: find
GET /workspaces/id
30 31 32 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 30 def get(id) object(http_get("workspaces/#{escape(id)}")) end |
#list ⇒ Collection Also known as: all
GET /workspaces — the workspaces the current user belongs to.
18 19 20 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 18 def list collection(http_get("workspaces"), key: "workspaces") end |
#members(id) ⇒ Collection
GET /workspaces/memberships/id/members
53 54 55 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 53 def members(id) collection(http_get("workspaces/memberships/#{escape(id)}/members"), key: "members") end |
#remove_member(id, user_id) ⇒ Boolean
DELETE /workspaces/memberships/id/members/userId
65 66 67 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 65 def remove_member(id, user_id) acknowledged(http_delete("workspaces/memberships/#{escape(id)}/members/#{escape(user_id)}")) end |
#transfer_ownership(id, new_owner_email:) ⇒ Boolean
POST /workspaces/memberships/id/transfer-ownership
76 77 78 79 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 76 def transfer_ownership(id, new_owner_email:) acknowledged(http_post("workspaces/memberships/#{escape(id)}/transfer-ownership", { newOwnerEmail: new_owner_email })) end |
#update(id, **attributes) ⇒ Object
PUT /workspaces/id
36 37 38 |
# File 'lib/databasus_ruby/objects/workspaces.rb', line 36 def update(id, **attributes) object(http_put("workspaces/#{escape(id)}", attributes)) end |