OSDN Git Service

Merge branch 'extend_user_api' of https://github.com/bladealslayer/gitlabhq into...
[wvm/gitlab.git] / lib / api / entities.rb
1 module Gitlab
2   module Entities
3     class User < Grape::Entity
4       expose :id, :username, :email, :name, :bio, :skype, :linkedin, :twitter,
5              :dark_scheme, :theme_id, :blocked, :created_at, :extern_uid, :provider
6     end
7
8     class UserBasic < Grape::Entity
9       expose :id, :username, :email, :name, :blocked, :created_at
10     end
11
12     class UserLogin < UserBasic
13       expose :private_token
14     end
15
16     class Hook < Grape::Entity
17       expose :id, :url, :created_at
18     end
19
20     class Project < Grape::Entity
21       expose :id, :name, :description, :default_branch
22       expose :owner, using: Entities::UserBasic
23       expose :private_flag, as: :private
24       expose :path, :path_with_namespace
25       expose :issues_enabled, :merge_requests_enabled, :wall_enabled, :wiki_enabled, :created_at
26       expose :namespace
27     end
28
29     class ProjectMember < UserBasic
30       expose :project_access, :as => :access_level do |user, options|
31         options[:project].users_projects.find_by_user_id(user.id).project_access
32       end
33     end
34
35     class RepoObject < Grape::Entity
36       expose :name, :commit
37     end
38
39     class RepoCommit < Grape::Entity
40       expose :id, :short_id, :title, :author_name, :author_email, :created_at
41     end
42
43     class ProjectSnippet < Grape::Entity
44       expose :id, :title, :file_name
45       expose :author, using: Entities::UserBasic
46       expose :expires_at, :updated_at, :created_at
47     end
48
49     class Milestone < Grape::Entity
50       expose :id
51       expose (:project_id) {|milestone| milestone.project.id}
52       expose :title, :description, :due_date, :closed, :updated_at, :created_at
53     end
54
55     class Issue < Grape::Entity
56       expose :id
57       expose (:project_id) {|issue| issue.project.id}
58       expose :title, :description
59       expose :label_list, as: :labels
60       expose :milestone, using: Entities::Milestone
61       expose :assignee, :author, using: Entities::UserBasic
62       expose :closed, :updated_at, :created_at
63     end
64
65     class SSHKey < Grape::Entity
66       expose :id, :title, :key, :created_at
67     end
68
69     class MergeRequest < Grape::Entity
70       expose :id, :target_branch, :source_branch, :project_id, :title, :closed, :merged
71       expose :author, :assignee, using: Entities::UserBasic
72     end
73
74     class Note < Grape::Entity
75       expose :id
76       expose :note, as: :body
77       expose :author, using: Entities::UserBasic
78       expose :created_at
79     end
80
81     class MRNote < Grape::Entity
82       expose :note
83       expose :author, using: Entities::UserBasic
84     end
85   end
86 end