Class: Printavo::Resources::Tasks
- Defined in:
- lib/printavo/resources/tasks.rb
Constant Summary collapse
- ALL_QUERY =
File.read(File.join(__dir__, '../graphql/tasks/all.graphql')).freeze
- FIND_QUERY =
File.read(File.join(__dir__, '../graphql/tasks/find.graphql')).freeze
- CREATE_MUTATION =
File.read(File.join(__dir__, '../graphql/tasks/create.graphql')).freeze
- UPDATE_MUTATION =
File.read(File.join(__dir__, '../graphql/tasks/update.graphql')).freeze
- DELETE_MUTATION =
File.read(File.join(__dir__, '../graphql/tasks/delete.graphql')).freeze
Instance Method Summary collapse
- #all(first: 25, after: nil) ⇒ Object
-
#complete(id) ⇒ Object
Marks a task complete by setting completedAt to the current time.
- #create(**input) ⇒ Object
-
#delete(id) ⇒ Object
Deletes a task.
- #find(id) ⇒ Object
- #update(id, **input) ⇒ Object
Methods inherited from Base
#all_pages, #each_page, #initialize
Constructor Details
This class inherits a constructor from Printavo::Resources::Base
Instance Method Details
#all(first: 25, after: nil) ⇒ Object
13 14 15 |
# File 'lib/printavo/resources/tasks.rb', line 13 def all(first: 25, after: nil) fetch_page(first: first, after: after).records end |
#complete(id) ⇒ Object
Marks a task complete by setting completedAt to the current time.
34 35 36 37 |
# File 'lib/printavo/resources/tasks.rb', line 34 def complete(id) require 'time' update(id, completed_at: Time.now.utc.iso8601) end |
#create(**input) ⇒ Object
22 23 24 25 |
# File 'lib/printavo/resources/tasks.rb', line 22 def create(**input) data = @graphql.mutate(CREATE_MUTATION, variables: { input: camelize_keys(input) }) Printavo::Task.new(data['taskCreate']) end |
#delete(id) ⇒ Object
Deletes a task. Raises on failure; returns nil on success.
40 41 42 43 |
# File 'lib/printavo/resources/tasks.rb', line 40 def delete(id) @graphql.mutate(DELETE_MUTATION, variables: { id: id.to_s }) nil end |
#find(id) ⇒ Object
17 18 19 20 |
# File 'lib/printavo/resources/tasks.rb', line 17 def find(id) data = @graphql.query(FIND_QUERY, variables: { id: id.to_s }) Printavo::Task.new(data['task']) end |
#update(id, **input) ⇒ Object
27 28 29 30 31 |
# File 'lib/printavo/resources/tasks.rb', line 27 def update(id, **input) data = @graphql.mutate(UPDATE_MUTATION, variables: { id: id.to_s, input: camelize_keys(input) }) Printavo::Task.new(data['taskUpdate']) end |