Module: Api::Relations

Instance Method Summary collapse

Instance Method Details

#clapObject



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

#clappersObject



74
75
76
# File 'app/controllers/concerns/api/relations.rb', line 74

def clappers
  render json: @obj, serializer: Api::ClappersSerializer
end

#followObject



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

#reviewObject



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_objectObject



82
83
84
# File 'app/controllers/concerns/api/relations.rb', line 82

def reviewed_object
  render json: current_user, serializer: Api::ReviewedSerializer
end

#saveObject



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_objectsObject



78
79
80
# File 'app/controllers/concerns/api/relations.rb', line 78

def saved_objects
  render json: current_user, serializer: Api::SavedSerializer
end