From 6afe242abebb0a7a25cbd7e22724c74dde5dae27 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sun, 27 Feb 2022 21:14:37 -0800 Subject: [PATCH] Return a boolean indicating favorite in party object --- app/controllers/api/v1/parties_controller.rb | 1 + app/models/party.rb | 4 ++++ app/views/api/v1/parties/base.json.rabl | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/app/controllers/api/v1/parties_controller.rb b/app/controllers/api/v1/parties_controller.rb index 87491d6..3c6a793 100644 --- a/app/controllers/api/v1/parties_controller.rb +++ b/app/controllers/api/v1/parties_controller.rb @@ -27,6 +27,7 @@ class Api::V1::PartiesController < Api::V1::ApiController end def show + @favorited = (current_user) ? @party.is_favorited(current_user) : false render_not_found_response if @party.nil? end diff --git a/app/models/party.rb b/app/models/party.rb index fed6dd8..8eaf233 100644 --- a/app/models/party.rb +++ b/app/models/party.rb @@ -7,4 +7,8 @@ class Party < ApplicationRecord has_many :characters, foreign_key: "party_id", class_name: "GridCharacter", dependent: :destroy has_many :weapons, foreign_key: "party_id", class_name: "GridWeapon", dependent: :destroy has_many :summons, foreign_key: "party_id", class_name: "GridSummon", dependent: :destroy + + def is_favorited(user) + user.favorite_parties.include? self + end end \ No newline at end of file diff --git a/app/views/api/v1/parties/base.json.rabl b/app/views/api/v1/parties/base.json.rabl index 760a164..c3bbd96 100644 --- a/app/views/api/v1/parties/base.json.rabl +++ b/app/views/api/v1/parties/base.json.rabl @@ -6,6 +6,10 @@ node :is_extra do |p| p.extra end +node :is_favorite do |p| + @favorited +end + node :user do |p| partial('users/base', :object => p.user) end