Sha256: f9c5ac570497ead934d3fbc885d666515e3475b029c7e02e60f52082624b4e30

Contents?: true

Size: 1.54 KB

Versions: 7

Compression:

Stored size: 1.54 KB

Contents

class Dummy::ProjectAPI < IntrospectiveGrape::API
  include Grape::Kaminari

  default_includes Project, :owner, :admins, :user_project_jobs, project_jobs: [:job], teams: [:team_users]
  default_includes Team, :team_users
  default_includes TeamUser, user: [:projects], team: [:project]
  default_includes ProjectJob, :job

  exclude_actions Project, :create,:destroy,:update
  exclude_actions Team, :show
  exclude_actions TeamUser, :show,:update

  paginate per_page: 2, max_per_page: 10, offset: 2

  restful Project, [:id, teams_attributes: [:id,:name,:_destroy, team_users_attributes: [:id, :user_id, :_destroy] ]]

  class AdminEntity < Grape::Entity
    expose :id, as: :user_id
    expose :email, :name, :avatar_url
  end

  class UserJobEntity < Grape::Entity
    expose :user_id, :name, :email, :avatar_url, :title, :created_at
  end

  class JobEntity < Grape::Entity
    expose :title
  end

  class UserEntity < Grape::Entity
    expose :id, :name, :avatar_url
  end

  class TeamUserEntity < Grape::Entity
    expose :id
    expose :user, using: UserEntity
  end

  class TeamEntity < Grape::Entity
    expose :id, :name, :created_at, :updated_at
    expose :team_users, using: TeamUserEntity
  end

  class ProjectEntity < Grape::Entity
    expose :id, :name, :created_at, :updated_at
    expose :owner,  using: Dummy::CompanyAPI::CompanyEntity
    expose :admins, using: AdminEntity
    expose :project_jobs,      as: :jobs,      using: JobEntity
    expose :user_project_jobs, as: :user_jobs, using: UserJobEntity
    expose :teams, using: TeamEntity
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
introspective_grape-0.6.1 spec/dummy/app/api/dummy/project_api.rb
introspective_grape-0.5.7 spec/dummy/app/api/dummy/project_api.rb
introspective_grape-0.5.6 spec/dummy/app/api/dummy/project_api.rb
introspective_grape-0.5.5 spec/dummy/app/api/dummy/project_api.rb
introspective_grape-0.5.4 spec/dummy/app/api/dummy/project_api.rb
introspective_grape-0.5.2 spec/dummy/app/api/dummy/project_api.rb
introspective_grape-0.5.0 spec/dummy/app/api/dummy/project_api.rb