Module: Api::Relations
- Extended by:
- ActiveSupport::Concern
- Included in:
- ChallengesController, DatasetsController, NeedsController, PeerReviewsController, PostsController, ProgramsController, ProjectsController, ProposalsController, SpacesController, UsersController, WorkgroupsController
- Defined in:
- app/controllers/concerns/api/relations.rb
Instance Method Summary collapse
- #clap ⇒ Object
- #clappers ⇒ Object
- #follow ⇒ Object
- #review ⇒ Object
- #reviewed_object ⇒ Object
- #save ⇒ Object
- #saved_objects ⇒ Object
Instance Method Details
#clap ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/controllers/concerns/api/relations.rb', line 28 def clap case request.method_symbol when :put @relation.has_clapped = true save_relation('Clapped') @relation.resource.notif_new_clap(current_user) current_user.add_edge(@relation.resource, 'has_clapped') when :get render json: { has_clapped: current_user.clapped?(@obj) }, status: :ok when :delete @relation.has_clapped = false save_relation('Unclapped') current_user.remove_edge(@relation.resource, 'has_clapped') end end |
#clappers ⇒ Object
74 75 76 |
# File 'app/controllers/concerns/api/relations.rb', line 74 def clappers render json: @obj, serializer: Api::ClappersSerializer end |
#follow ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/controllers/concerns/api/relations.rb', line 12 def follow case request.method_symbol when :put @relation.follows = true save_relation('Followed') @relation.resource.notif_new_follower(current_user) if @relation.resource.respond_to?(:notif_new_follower) current_user.add_edge(@relation.resource, 'has_followed') when :get render json: { has_followed: current_user.follows?(@obj) }, status: :ok when :delete @relation.follows = false save_relation('Unfollowed') current_user.remove_edge(@relation.resource, 'has_followed') end end |
#review ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'app/controllers/concerns/api/relations.rb', line 59 def review case request.method_symbol when :put @relation.reviewed = true save_relation('Reviewed') current_user.add_edge(@relation.resource, 'has_reviewed') when :get render json: { has_reviewed: current_user.reviewed?(@obj) }, status: :ok when :delete @relation.reviewed = false save_relation('Unreviewed') current_user.remove_edge(@relation.resource, 'has_reviewed') end end |
#reviewed_object ⇒ Object
82 83 84 |
# File 'app/controllers/concerns/api/relations.rb', line 82 def reviewed_object render json: current_user, serializer: Api::ReviewedSerializer end |
#save ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'app/controllers/concerns/api/relations.rb', line 44 def save case request.method_symbol when :put @relation.saved = true save_relation('Saved') current_user.add_edge(@relation.resource, 'has_saved') unless @obj.class.name == "PeerReview" when :get render json: { has_saved: current_user.saved?(@obj) }, status: :ok when :delete @relation.saved = false save_relation('Unsaved') current_user.remove_edge(@relation.resource, 'has_saved') unless @obj.class.name == "PeerReview" end end |
#saved_objects ⇒ Object
78 79 80 |
# File 'app/controllers/concerns/api/relations.rb', line 78 def saved_objects render json: current_user, serializer: Api::SavedSerializer end |