Class: Clicksign::Resources::Membership
Instance Attribute Summary
#id, #relationships
Class Method Summary
collapse
Instance Method Summary
collapse
#[], auto_paging_each, #base_path, client, #delete, each_page, fields, filter, filter_params, include, list, #method_missing, nested_list, order, page, per, #reload, #respond_to_missing?, retrieve, validate_jsonapi_include_types!, with_includes
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
in the class Clicksign::Resource
Class Method Details
.create(role:, user_id:, **attributes) ⇒ Object
8
9
10
11
12
13
14
|
# File 'lib/clicksign/resources/membership.rb', line 8
def self.create(role:, user_id:, **attributes)
super(
**attributes,
role: role,
relationships: { user: { data: { type: 'users', id: user_id } } }
)
end
|
Instance Method Details
#update(**attributes) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/clicksign/resources/membership.rb', line 16
def update(**attributes)
raw = self.class.client.put(
"#{base_path}/#{@id}",
body: JsonApi::Serializer.dump(
type: self.class.resource_type, id: @id, attributes: attributes,
),
)
parsed = JsonApi::Parser.parse(raw)
data = parsed[:data].first
raise NotFoundError, 'API returned null data' if data.nil?
load_data(data, parent_id: @_parent_id)
self
end
|
#user_id ⇒ Object
31
32
33
|
# File 'lib/clicksign/resources/membership.rb', line 31
def user_id
relationships.dig('user', 'data', 'id')
end
|