class DeerjikistsController < ApplicationController def show platform = params[:platform].to_s.strip code = params[:code].to_s.strip return render_bad_request('platform は必須です.', field: :platform) if platform.blank? return render_bad_request('code は必須です.', field: :code) if code.blank? deerjikist = Deerjikist .joins(:tag) .includes(tag: :tag_name) .find_by(platform:, code:) if deerjikist render json: DeerjikistRepr.base(deerjikist) else head :not_found end end def update return head :unauthorized unless current_user return head :forbidden unless current_user.gte_member? platform = params[:platform].to_s.strip code = params[:code].to_s.strip tag_id = params[:tag_id].to_i return render_bad_request('platform は必須です.', field: :platform) if platform.blank? return render_bad_request('code は必須です.', field: :code) if code.blank? return render_bad_request('tag_id が不正です.', field: :tag_id) if tag_id <= 0 deerjikist = Deerjikist.find_or_initialize_by(platform:, code:).tap do |d| d.tag_id = tag_id d.save! end render json: DeerjikistRepr.base(deerjikist) end def destroy return head :unauthorized unless current_user return head :forbidden unless current_user.gte_member? platform = params[:platform].to_s.strip code = params[:code].to_s.strip return render_bad_request('platform は必須です.', field: :platform) if platform.blank? return render_bad_request('code は必須です.', field: :code) if code.blank? Deerjikist.find([platform, code]).destroy! head :no_content end end