Class: Api::NeedsController
- Inherits:
-
ApplicationController
- Object
- ActionController::API
- ApplicationController
- Api::NeedsController
- Defined in:
- app/controllers/api/needs_controller.rb
Instance Method Summary collapse
- #create ⇒ Object
- #destroy ⇒ Object
- #index ⇒ Object
- #my_needs ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Methods included from Recommendations
Methods included from Hooks
#create_external_hook, #delete_external_hook, #get_external_hooks, #hook_new_member, #hook_new_need, #hook_new_post, #hook_new_project, #hook_new_project_challenge, #update_external_hook
Methods included from Upload
#remove_avatar, #remove_banner, #remove_document, #upload_avatar, #upload_banner, #upload_document
Methods included from Utils
#get_id_from_short_title, #is_admin, #is_member, #is_reviewer, #nickname_exist, #short_title_exist
Methods included from Members
#get_current_role, #get_roles_list, #has_membership, #invite, #invite_as_admin, #join, #leave, #members_list, #remove_member, #update_member
Methods included from Media
#media_create, #media_destroy, #media_index, #media_show, #media_update, #media_upload
Methods included from Follow
Methods included from Relations
#clap, #clappers, #follow, #review, #reviewed_object, #save, #saved_objects
Methods included from Response
Instance Method Details
#create ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/controllers/api/needs_controller.rb', line 39 def create find_project can_create @need = Need.new(need_params) @need.user_id = current_user.id @need.status = :active if @need.save! @need.update_skills(params[:need][:skills]) unless params[:need][:skills].nil? @need.update_ressources(params[:need][:ressources]) unless params[:need][:ressources].nil? @project.needs << @need current_user.add_role :owner, @need current_user.add_role :admin, @project current_user.add_role :member, @need current_user.add_edge(@need, 'is_author_of') @project.add_edge(@need, 'has_need') # First let's render the JSON because the need went through render json: { id: @need.id, data: 'Your need has been published' }, status: :created hook_new_need(@project.externalhooks, @need) else render json: { data: 'Something went wrong' }, status: :unprocessable_entity end end |
#destroy ⇒ Object
72 73 74 75 76 77 78 |
# File 'app/controllers/api/needs_controller.rb', line 72 def destroy if @need.destroy current_user.remove_edge(@need, 'is_author_of') @need.project.remove_edge(@need, 'has_need') render json: { data: "Your need id:#{@need.id} has been deleted" }, status: :ok end end |
#index ⇒ Object
23 24 25 26 27 28 29 |
# File 'app/controllers/api/needs_controller.rb', line 23 def index param = params[:order] == 'desc' ? 'id DESC' : 'id ASC' @pagy, @needs = pagy(Need.includes(%i[project user]).order(param).all) render json: @needs, each_serializer: Api::NeedSerializer, status: :ok end |
#my_needs ⇒ Object
35 36 37 |
# File 'app/controllers/api/needs_controller.rb', line 35 def my_needs render json: Need.with_role(:member, current_user), each_serializer: Api::NeedSerializer end |
#show ⇒ Object
31 32 33 |
# File 'app/controllers/api/needs_controller.rb', line 31 def show render json: @need, includes: %i[project user], show_objects: true end |
#update ⇒ Object
64 65 66 67 68 69 70 |
# File 'app/controllers/api/needs_controller.rb', line 64 def update if @need.update(need_params) @need.update_skills(params[:need][:skills]) unless params[:need][:skills].nil? @need.update_ressources(params[:need][:ressources]) unless params[:need][:ressources].nil? render json: { data: "Need id:#{@need.id} has been updated" }, status: :ok end end |