class ProjectsController

Public Instance Methods

create() click to toggle source

POST /projects

# File natural-backend/app/controllers/projects_controller.rb, line 17
def create
  @project = current_user.projects.build(project_params)

  if @project.save
    render json: @project, status: :created, location: @project
  else
    render json: @project.errors, status: :unprocessable_entity
  end
end
destroy() click to toggle source

DELETE /projects/1

# File natural-backend/app/controllers/projects_controller.rb, line 37
def destroy
  @project.destroy
end
index() click to toggle source

GET /projects

# File natural-backend/app/controllers/projects_controller.rb, line 5
def index
  @projects = current_user.projects.all

  render json: @projects
end
show() click to toggle source

GET /projects/1

# File natural-backend/app/controllers/projects_controller.rb, line 12
def show
  render json: @project
end
update() click to toggle source

PATCH/PUT /projects/1

# File natural-backend/app/controllers/projects_controller.rb, line 28
def update
  if @project.update(project_params)
    render json: @project
  else
    render json: @project.errors, status: :unprocessable_entity
  end
end

Private Instance Methods

project_params() click to toggle source

Only allow a trusted parameter “white list” through.

# File natural-backend/app/controllers/projects_controller.rb, line 48
def project_params
  ActiveModelSerializers::Deserialization.jsonapi_parse(params, only: [:name])
end
set_project() click to toggle source

Use callbacks to share common setup or constraints between actions.

# File natural-backend/app/controllers/projects_controller.rb, line 43
def set_project
  @project = current_user.projects.find(params[:id])
end