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}")