ぼざクリタグ広場 https://hub.nizika.monster
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

52 lines
1.7 KiB

  1. class DeerjikistsController < ApplicationController
  2. def show
  3. platform = params[:platform].to_s.strip
  4. code = params[:code].to_s.strip
  5. return render_bad_request('platform は必須です.', field: :platform) if platform.blank?
  6. return render_bad_request('code は必須です.', field: :code) if code.blank?
  7. deerjikist = Deerjikist
  8. .joins(:tag)
  9. .includes(tag: :tag_name)
  10. .find_by(platform:, code:)
  11. if deerjikist
  12. render json: DeerjikistRepr.base(deerjikist)
  13. else
  14. head :not_found
  15. end
  16. end
  17. def update
  18. return head :unauthorized unless current_user
  19. return head :forbidden unless current_user.gte_member?
  20. platform = params[:platform].to_s.strip
  21. code = params[:code].to_s.strip
  22. tag_id = params[:tag_id].to_i
  23. return render_bad_request('platform は必須です.', field: :platform) if platform.blank?
  24. return render_bad_request('code は必須です.', field: :code) if code.blank?
  25. return render_bad_request('tag_id が不正です.', field: :tag_id) if tag_id <= 0
  26. deerjikist = Deerjikist.find_or_initialize_by(platform:, code:).tap do |d|
  27. d.tag_id = tag_id
  28. d.save!
  29. end
  30. render json: DeerjikistRepr.base(deerjikist)
  31. end
  32. def destroy
  33. return head :unauthorized unless current_user
  34. return head :forbidden unless current_user.gte_member?
  35. platform = params[:platform].to_s.strip
  36. code = params[:code].to_s.strip
  37. return render_bad_request('platform は必須です.', field: :platform) if platform.blank?
  38. return render_bad_request('code は必須です.', field: :code) if code.blank?
  39. Deerjikist.find([platform, code]).destroy!
  40. head :no_content
  41. end
  42. end