Class: Praxicraft::Resources::Assessments
- Inherits:
-
Object
- Object
- Praxicraft::Resources::Assessments
- Defined in:
- lib/praxicraft/resources/assessments.rb
Instance Method Summary collapse
- #activate(assessment) ⇒ Object
- #attach_tasks(assessment, args = nil, **kwargs) ⇒ Object
- #create(fields = nil, **kwargs) ⇒ Object
-
#initialize(client) ⇒ Assessments
constructor
A new instance of Assessments.
- #list(params = nil) ⇒ Object
- #list_tasks(assessment, params = nil) ⇒ Object
- #remove_task(assessment, assessment_task_id) ⇒ Object
- #replace_tasks(assessment, tasks, extra = nil, **kwargs) ⇒ Object
- #retrieve(assessment) ⇒ Object
- #update(assessment, fields = nil, **kwargs) ⇒ Object
Constructor Details
#initialize(client) ⇒ Assessments
Returns a new instance of Assessments.
6 7 8 |
# File 'lib/praxicraft/resources/assessments.rb', line 6 def initialize(client) @client = client end |
Instance Method Details
#activate(assessment) ⇒ Object
34 35 36 |
# File 'lib/praxicraft/resources/assessments.rb', line 34 def activate(assessment) update(assessment, "status" => "active") end |
#attach_tasks(assessment, args = nil, **kwargs) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/praxicraft/resources/assessments.rb', line 43 def attach_tasks(assessment, args = nil, **kwargs) body = normalize(args || kwargs) if body.nil? || body.empty? raise APIError.new("attach_tasks() requires tasks or task_id", "INVALID_ARGUMENT") end key = Client.path_segment(assessment, "assessment") @client.post("/assessments/#{key}/tasks/attach/", body) end |
#create(fields = nil, **kwargs) ⇒ Object
19 20 21 22 |
# File 'lib/praxicraft/resources/assessments.rb', line 19 def create(fields = nil, **kwargs) body = normalize(fields || kwargs) @client.post("/assessments/create/", body) end |
#list(params = nil) ⇒ Object
10 11 12 |
# File 'lib/praxicraft/resources/assessments.rb', line 10 def list(params = nil) @client.get("/assessments/", normalize(params)) end |
#list_tasks(assessment, params = nil) ⇒ Object
38 39 40 41 |
# File 'lib/praxicraft/resources/assessments.rb', line 38 def list_tasks(assessment, params = nil) key = Client.path_segment(assessment, "assessment") @client.get("/assessments/#{key}/tasks/", normalize(params)) end |
#remove_task(assessment, assessment_task_id) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/praxicraft/resources/assessments.rb', line 59 def remove_task(assessment, assessment_task_id) key = Client.path_segment(assessment, "assessment") task_id = assessment_task_id.to_s.strip if task_id.empty? raise APIError.new("assessment_task_id must be a non-empty string", "INVALID_ARGUMENT") end @client.delete("/assessments/#{key}/tasks/remove/", { "assessment_task_id" => task_id }) end |
#replace_tasks(assessment, tasks, extra = nil, **kwargs) ⇒ Object
53 54 55 56 57 |
# File 'lib/praxicraft/resources/assessments.rb', line 53 def replace_tasks(assessment, tasks, extra = nil, **kwargs) key = Client.path_segment(assessment, "assessment") body = { "tasks" => tasks }.merge(normalize(extra || kwargs) || {}) @client.put("/assessments/#{key}/tasks/replace/", body) end |
#retrieve(assessment) ⇒ Object
14 15 16 17 |
# File 'lib/praxicraft/resources/assessments.rb', line 14 def retrieve(assessment) key = Client.path_segment(assessment, "assessment") @client.get("/assessments/#{key}/") end |
#update(assessment, fields = nil, **kwargs) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/praxicraft/resources/assessments.rb', line 24 def update(assessment, fields = nil, **kwargs) body = normalize(fields || kwargs) if body.nil? || body.empty? raise APIError.new("update() requires at least one field to change", "INVALID_ARGUMENT") end key = Client.path_segment(assessment, "assessment") @client.patch("/assessments/#{key}/update/", body) end |