lib/panoptes/client/project_preferences.rb in panoptes-client-1.2.0 vs lib/panoptes/client/project_preferences.rb in panoptes-client-1.2.1

- old
+ new

@@ -14,9 +14,32 @@ project_id: project_id) response.fetch('project_preferences').first end def promote_user_to_workflow(user_id, project_id, workflow_id) + project_pref = panoptes.get('project_preferences', + user_id: user_id, + project_id: project_id).fetch('project_preferences').first + id = project_pref['id'] + workflow_id_current = project_pref['settings']['workflow_id'] + + response = panoptes.connection.get("/api/project_preferences/#{id}") + etag = response.headers['ETag'] + + workflow_target = panoptes.get("/workflows/#{workflow_id}").fetch('workflows').first + level_target = workflow_target['configuration']['level'].to_i + + workflow_current = panoptes.get("/workflows/#{workflow_id_current}").fetch('workflows').first + level_current = workflow_current['configuration']['level'].to_i + + if level_target > level_current + panoptes.put("project_preferences/#{id}", { + project_preferences: { settings: { workflow_id: workflow_id } } + }, etag: etag) + end + end + + def set_user_workflow(user_id, project_id, workflow_id) id = panoptes.get('project_preferences', user_id: user_id, project_id: project_id).fetch('project_preferences').first['id'] response = panoptes.connection.get("/api/project_preferences/#{id}")