scinote-web/app/controllers/client_api/teams/teams_controller.rb

77 lines
2.5 KiB
Ruby
Raw Normal View History

2017-08-30 15:29:45 +08:00
module ClientApi
module Teams
class TeamsController < ApplicationController
include ClientApi::Users::UserTeamsHelper
def index
success_response('/client_api/teams/index',
teams: current_user.teams_data)
end
def new; end
def create
teams_service = ClientApi::TeamsService.new(current_user: current_user,
params: team_params)
teams_service.create_team!
success_response('/client_api/teams/index', teams_service.teams_data)
rescue ClientApi::CustomTeamError => error
error_response(error.to_s)
end
2017-08-30 15:29:45 +08:00
def details
teams_service = ClientApi::TeamsService.new(team_id: params[:team_id],
2017-08-30 15:29:45 +08:00
current_user: current_user)
success_response('/client_api/teams/details',
teams_service.team_page_details_data)
2017-08-30 22:18:21 +08:00
rescue ClientApi::CustomTeamError
2017-08-30 15:29:45 +08:00
error_response
end
def change_team
teams_service = ClientApi::TeamsService.new(team_id: params[:team_id],
2017-08-30 15:29:45 +08:00
current_user: current_user)
teams_service.change_current_team!
success_response('/client_api/teams/index', teams_service.teams_data)
2017-08-30 22:18:21 +08:00
rescue ClientApi::CustomTeamError
2017-08-30 15:29:45 +08:00
error_response
end
def update
teams_service = ClientApi::TeamsService.new(team_id: params[:team_id],
current_user: current_user,
params: team_params)
teams_service.update_team!
success_response('/client_api/teams/update_details',
teams_service.single_team_details_data)
rescue ClientApi::CustomTeamError => error
error_response(error.to_s)
end
2017-08-30 15:29:45 +08:00
private
def team_params
params.require(:team).permit(:name, :description)
end
2017-08-30 15:29:45 +08:00
def success_response(template, locals)
respond_to do |format|
format.json do
render template: template,
status: :ok,
locals: locals
end
end
end
def error_response(message = t('client_api.generic_error_message'))
2017-08-30 15:29:45 +08:00
respond_to do |format|
format.json do
render json: { message: message }, status: :unprocessable_entity
2017-08-30 15:29:45 +08:00
end
end
end
end
end
end