class Trackington::ProjectRepository

Public Instance Methods

all(user_id) click to toggle source
# File lib/trackington/app/projects.rb, line 29
def all(user_id)
  get_projects(user_id: user_id)
end
create(user_id, project_information) click to toggle source
# File lib/trackington/app/projects.rb, line 5
def create(user_id, project_information)
  project = Models::Project.new(project_information)
  project.save

  project_role = Models::ProjectRole.new(user_id: user_id,
                                         project_id: project.id,
                                         role_type: :owner)
  project_role.save

  sprint = Models::Sprint.new(project_id: project.id, is_backlog: true)
  sprint.save

  project.id
end
get(project_id) click to toggle source
# File lib/trackington/app/projects.rb, line 20
def get(project_id)
  db_project = Models::Project.find(project_id)

  Project.new(db_project.id,
              db_project.title,
              db_project.description,
              db_project.public)
end
public() click to toggle source
# File lib/trackington/app/projects.rb, line 33
def public
  get_projects(public: true)
end

Private Instance Methods

get_projects(params) click to toggle source
# File lib/trackington/app/projects.rb, line 39
def get_projects(params)
  project_ids = Models::ProjectRole
                .where(params)
                .select(:project_id)
                .map(&:project_id)

  Models::Project.find(project_ids).map do |db_project|
    Project.new(db_project.id, db_project.title, db_project.description,
                db_project.public)
  end
end