Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
gitlab-ce
Commits
626e79b6
Commit
626e79b6
authored
Feb 06, 2017
by
Robert Schilling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Split V3 entities into a separate file
parent
5985b557
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
95 additions
and
93 deletions
+95
-93
lib/api/entities.rb
lib/api/entities.rb
+0
-14
lib/api/v3/entities.rb
lib/api/v3/entities.rb
+16
-0
lib/api/v3/issues.rb
lib/api/v3/issues.rb
+14
-14
lib/api/v3/merge_requests.rb
lib/api/v3/merge_requests.rb
+20
-20
lib/api/v3/project_snippets.rb
lib/api/v3/project_snippets.rb
+8
-8
lib/api/v3/projects.rb
lib/api/v3/projects.rb
+37
-37
No files found.
lib/api/entities.rb
View file @
626e79b6
...
@@ -694,19 +694,5 @@ module API
...
@@ -694,19 +694,5 @@ module API
expose
:id
,
:message
,
:starts_at
,
:ends_at
,
:color
,
:font
expose
:id
,
:message
,
:starts_at
,
:ends_at
,
:color
,
:font
expose
:active?
,
as: :active
expose
:active?
,
as: :active
end
end
# Entities for the deprecated V3 API
class
ProjectSnippetV3
<
Grape
::
Entity
expose
:id
,
:title
,
:file_name
expose
:author
,
using:
Entities
::
UserBasic
expose
:updated_at
,
:created_at
# TODO (rspeicher): Deprecated; remove in 9.0
expose
(
:expires_at
)
{
|
snippet
|
nil
}
expose
:web_url
do
|
snippet
,
options
|
Gitlab
::
UrlBuilder
.
build
(
snippet
)
end
end
end
end
end
end
lib/api/v3/entities.rb
0 → 100644
View file @
626e79b6
module
API
module
V3
module
Entities
class
ProjectSnippet
<
Grape
::
Entity
expose
:id
,
:title
,
:file_name
expose
:author
,
using:
::
API
::
Entities
::
UserBasic
expose
:updated_at
,
:created_at
expose
(
:expires_at
)
{
|
snippet
|
nil
}
expose
:web_url
do
|
snippet
,
options
|
Gitlab
::
UrlBuilder
.
build
(
snippet
)
end
end
end
end
end
lib/api/v3/issues.rb
View file @
626e79b6
...
@@ -50,7 +50,7 @@ module API
...
@@ -50,7 +50,7 @@ module API
resource
:issues
do
resource
:issues
do
desc
"Get currently authenticated user's issues"
do
desc
"Get currently authenticated user's issues"
do
success
Entities
::
Issue
success
::
API
::
Entities
::
Issue
end
end
params
do
params
do
optional
:state
,
type:
String
,
values:
%w[opened closed all]
,
default:
'all'
,
optional
:state
,
type:
String
,
values:
%w[opened closed all]
,
default:
'all'
,
...
@@ -60,7 +60,7 @@ module API
...
@@ -60,7 +60,7 @@ module API
get
do
get
do
issues
=
find_issues
(
scope:
'authored'
)
issues
=
find_issues
(
scope:
'authored'
)
present
paginate
(
issues
),
with:
Entities
::
Issue
,
current_user:
current_user
present
paginate
(
issues
),
with:
::
API
::
Entities
::
Issue
,
current_user:
current_user
end
end
end
end
...
@@ -69,7 +69,7 @@ module API
...
@@ -69,7 +69,7 @@ module API
end
end
resource
:groups
do
resource
:groups
do
desc
'Get a list of group issues'
do
desc
'Get a list of group issues'
do
success
Entities
::
Issue
success
::
API
::
Entities
::
Issue
end
end
params
do
params
do
optional
:state
,
type:
String
,
values:
%w[opened closed all]
,
default:
'opened'
,
optional
:state
,
type:
String
,
values:
%w[opened closed all]
,
default:
'opened'
,
...
@@ -81,7 +81,7 @@ module API
...
@@ -81,7 +81,7 @@ module API
issues
=
find_issues
(
group_id:
group
.
id
,
state:
params
[
:state
]
||
'opened'
,
match_all_labels:
true
)
issues
=
find_issues
(
group_id:
group
.
id
,
state:
params
[
:state
]
||
'opened'
,
match_all_labels:
true
)
present
paginate
(
issues
),
with:
Entities
::
Issue
,
current_user:
current_user
present
paginate
(
issues
),
with:
::
API
::
Entities
::
Issue
,
current_user:
current_user
end
end
end
end
...
@@ -93,7 +93,7 @@ module API
...
@@ -93,7 +93,7 @@ module API
desc
'Get a list of project issues'
do
desc
'Get a list of project issues'
do
detail
'iid filter is deprecated have been removed on V4'
detail
'iid filter is deprecated have been removed on V4'
success
Entities
::
Issue
success
::
API
::
Entities
::
Issue
end
end
params
do
params
do
optional
:state
,
type:
String
,
values:
%w[opened closed all]
,
default:
'all'
,
optional
:state
,
type:
String
,
values:
%w[opened closed all]
,
default:
'all'
,
...
@@ -106,22 +106,22 @@ module API
...
@@ -106,22 +106,22 @@ module API
issues
=
find_issues
(
project_id:
project
.
id
)
issues
=
find_issues
(
project_id:
project
.
id
)
present
paginate
(
issues
),
with:
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
present
paginate
(
issues
),
with:
::
API
::
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
end
end
desc
'Get a single project issue'
do
desc
'Get a single project issue'
do
success
Entities
::
Issue
success
::
API
::
Entities
::
Issue
end
end
params
do
params
do
requires
:issue_id
,
type:
Integer
,
desc:
'The ID of a project issue'
requires
:issue_id
,
type:
Integer
,
desc:
'The ID of a project issue'
end
end
get
":id/issues/:issue_id"
do
get
":id/issues/:issue_id"
do
issue
=
find_project_issue
(
params
[
:issue_id
])
issue
=
find_project_issue
(
params
[
:issue_id
])
present
issue
,
with:
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
present
issue
,
with:
::
API
::
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
end
end
desc
'Create a new project issue'
do
desc
'Create a new project issue'
do
success
Entities
::
Issue
success
::
API
::
Entities
::
Issue
end
end
params
do
params
do
requires
:title
,
type:
String
,
desc:
'The title of an issue'
requires
:title
,
type:
String
,
desc:
'The title of an issue'
...
@@ -153,14 +153,14 @@ module API
...
@@ -153,14 +153,14 @@ module API
end
end
if
issue
.
valid?
if
issue
.
valid?
present
issue
,
with:
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
present
issue
,
with:
::
API
::
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
else
else
render_validation_error!
(
issue
)
render_validation_error!
(
issue
)
end
end
end
end
desc
'Update an existing issue'
do
desc
'Update an existing issue'
do
success
Entities
::
Issue
success
::
API
::
Entities
::
Issue
end
end
params
do
params
do
requires
:issue_id
,
type:
Integer
,
desc:
'The ID of a project issue'
requires
:issue_id
,
type:
Integer
,
desc:
'The ID of a project issue'
...
@@ -186,14 +186,14 @@ module API
...
@@ -186,14 +186,14 @@ module API
declared_params
(
include_missing:
false
)).
execute
(
issue
)
declared_params
(
include_missing:
false
)).
execute
(
issue
)
if
issue
.
valid?
if
issue
.
valid?
present
issue
,
with:
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
present
issue
,
with:
::
API
::
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
else
else
render_validation_error!
(
issue
)
render_validation_error!
(
issue
)
end
end
end
end
desc
'Move an existing issue'
do
desc
'Move an existing issue'
do
success
Entities
::
Issue
success
::
API
::
Entities
::
Issue
end
end
params
do
params
do
requires
:issue_id
,
type:
Integer
,
desc:
'The ID of a project issue'
requires
:issue_id
,
type:
Integer
,
desc:
'The ID of a project issue'
...
@@ -208,7 +208,7 @@ module API
...
@@ -208,7 +208,7 @@ module API
begin
begin
issue
=
::
Issues
::
MoveService
.
new
(
user_project
,
current_user
).
execute
(
issue
,
new_project
)
issue
=
::
Issues
::
MoveService
.
new
(
user_project
,
current_user
).
execute
(
issue
,
new_project
)
present
issue
,
with:
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
present
issue
,
with:
::
API
::
Entities
::
Issue
,
current_user:
current_user
,
project:
user_project
rescue
::
Issues
::
MoveService
::
MoveError
=>
error
rescue
::
Issues
::
MoveService
::
MoveError
=>
error
render_api_error!
(
error
.
message
,
400
)
render_api_error!
(
error
.
message
,
400
)
end
end
...
...
lib/api/v3/merge_requests.rb
View file @
626e79b6
...
@@ -39,7 +39,7 @@ module API
...
@@ -39,7 +39,7 @@ module API
desc
'List merge requests'
do
desc
'List merge requests'
do
detail
'iid filter is deprecated have been removed on V4'
detail
'iid filter is deprecated have been removed on V4'
success
Entities
::
MergeRequest
success
::
API
::
Entities
::
MergeRequest
end
end
params
do
params
do
optional
:state
,
type:
String
,
values:
%w[opened closed merged all]
,
default:
'all'
,
optional
:state
,
type:
String
,
values:
%w[opened closed merged all]
,
default:
'all'
,
...
@@ -66,11 +66,11 @@ module API
...
@@ -66,11 +66,11 @@ module API
end
end
merge_requests
=
merge_requests
.
reorder
(
params
[
:order_by
]
=>
params
[
:sort
])
merge_requests
=
merge_requests
.
reorder
(
params
[
:order_by
]
=>
params
[
:sort
])
present
paginate
(
merge_requests
),
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
present
paginate
(
merge_requests
),
with:
::
API
::
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
end
end
desc
'Create a merge request'
do
desc
'Create a merge request'
do
success
Entities
::
MergeRequest
success
::
API
::
Entities
::
MergeRequest
end
end
params
do
params
do
requires
:title
,
type:
String
,
desc:
'The title of the merge request'
requires
:title
,
type:
String
,
desc:
'The title of the merge request'
...
@@ -89,7 +89,7 @@ module API
...
@@ -89,7 +89,7 @@ module API
merge_request
=
::
MergeRequests
::
CreateService
.
new
(
user_project
,
current_user
,
mr_params
).
execute
merge_request
=
::
MergeRequests
::
CreateService
.
new
(
user_project
,
current_user
,
mr_params
).
execute
if
merge_request
.
valid?
if
merge_request
.
valid?
present
merge_request
,
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
present
merge_request
,
with:
::
API
::
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
else
else
handle_merge_request_errors!
merge_request
.
errors
handle_merge_request_errors!
merge_request
.
errors
end
end
...
@@ -114,34 +114,34 @@ module API
...
@@ -114,34 +114,34 @@ module API
if
status
==
:deprecated
if
status
==
:deprecated
detail
DEPRECATION_MESSAGE
detail
DEPRECATION_MESSAGE
end
end
success
Entities
::
MergeRequest
success
::
API
::
Entities
::
MergeRequest
end
end
get
path
do
get
path
do
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
present
merge_request
,
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
present
merge_request
,
with:
::
API
::
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
end
end
desc
'Get the commits of a merge request'
do
desc
'Get the commits of a merge request'
do
success
Entities
::
RepoCommit
success
::
API
::
Entities
::
RepoCommit
end
end
get
"
#{
path
}
/commits"
do
get
"
#{
path
}
/commits"
do
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
present
merge_request
.
commits
,
with:
Entities
::
RepoCommit
present
merge_request
.
commits
,
with:
::
API
::
Entities
::
RepoCommit
end
end
desc
'Show the merge request changes'
do
desc
'Show the merge request changes'
do
success
Entities
::
MergeRequestChanges
success
::
API
::
Entities
::
MergeRequestChanges
end
end
get
"
#{
path
}
/changes"
do
get
"
#{
path
}
/changes"
do
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
present
merge_request
,
with:
Entities
::
MergeRequestChanges
,
current_user:
current_user
present
merge_request
,
with:
::
API
::
Entities
::
MergeRequestChanges
,
current_user:
current_user
end
end
desc
'Update a merge request'
do
desc
'Update a merge request'
do
success
Entities
::
MergeRequest
success
::
API
::
Entities
::
MergeRequest
end
end
params
do
params
do
optional
:title
,
type:
String
,
allow_blank:
false
,
desc:
'The title of the merge request'
optional
:title
,
type:
String
,
allow_blank:
false
,
desc:
'The title of the merge request'
...
@@ -162,14 +162,14 @@ module API
...
@@ -162,14 +162,14 @@ module API
merge_request
=
::
MergeRequests
::
UpdateService
.
new
(
user_project
,
current_user
,
mr_params
).
execute
(
merge_request
)
merge_request
=
::
MergeRequests
::
UpdateService
.
new
(
user_project
,
current_user
,
mr_params
).
execute
(
merge_request
)
if
merge_request
.
valid?
if
merge_request
.
valid?
present
merge_request
,
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
present
merge_request
,
with:
::
API
::
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
else
else
handle_merge_request_errors!
merge_request
.
errors
handle_merge_request_errors!
merge_request
.
errors
end
end
end
end
desc
'Merge a merge request'
do
desc
'Merge a merge request'
do
success
Entities
::
MergeRequest
success
::
API
::
Entities
::
MergeRequest
end
end
params
do
params
do
optional
:merge_commit_message
,
type:
String
,
desc:
'Custom merge commit message'
optional
:merge_commit_message
,
type:
String
,
desc:
'Custom merge commit message'
...
@@ -209,11 +209,11 @@ module API
...
@@ -209,11 +209,11 @@ module API
.
execute
(
merge_request
)
.
execute
(
merge_request
)
end
end
present
merge_request
,
with:
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
present
merge_request
,
with:
::
API
::
Entities
::
MergeRequest
,
current_user:
current_user
,
project:
user_project
end
end
desc
'Cancel merge if "Merge When Pipeline Succeeds" is enabled'
do
desc
'Cancel merge if "Merge When Pipeline Succeeds" is enabled'
do
success
Entities
::
MergeRequest
success
::
API
::
Entities
::
MergeRequest
end
end
post
"
#{
path
}
/cancel_merge_when_build_succeeds"
do
post
"
#{
path
}
/cancel_merge_when_build_succeeds"
do
merge_request
=
find_project_merge_request
(
params
[
:merge_request_id
])
merge_request
=
find_project_merge_request
(
params
[
:merge_request_id
])
...
@@ -227,19 +227,19 @@ module API
...
@@ -227,19 +227,19 @@ module API
desc
'Get the comments of a merge request'
do
desc
'Get the comments of a merge request'
do
detail
'Duplicate. DEPRECATED and HAS BEEN REMOVED in V4'
detail
'Duplicate. DEPRECATED and HAS BEEN REMOVED in V4'
success
Entities
::
MRNote
success
::
API
::
Entities
::
MRNote
end
end
params
do
params
do
use
:pagination
use
:pagination
end
end
get
"
#{
path
}
/comments"
do
get
"
#{
path
}
/comments"
do
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
merge_request
=
find_merge_request_with_access
(
params
[
:merge_request_id
])
present
paginate
(
merge_request
.
notes
.
fresh
),
with:
Entities
::
MRNote
present
paginate
(
merge_request
.
notes
.
fresh
),
with:
::
API
::
Entities
::
MRNote
end
end
desc
'Post a comment to a merge request'
do
desc
'Post a comment to a merge request'
do
detail
'Duplicate. DEPRECATED and HAS BEEN REMOVED in V4'
detail
'Duplicate. DEPRECATED and HAS BEEN REMOVED in V4'
success
Entities
::
MRNote
success
::
API
::
Entities
::
MRNote
end
end
params
do
params
do
requires
:note
,
type:
String
,
desc:
'The text of the comment'
requires
:note
,
type:
String
,
desc:
'The text of the comment'
...
@@ -256,14 +256,14 @@ module API
...
@@ -256,14 +256,14 @@ module API
note
=
::
Notes
::
CreateService
.
new
(
user_project
,
current_user
,
opts
).
execute
note
=
::
Notes
::
CreateService
.
new
(
user_project
,
current_user
,
opts
).
execute
if
note
.
save
if
note
.
save
present
note
,
with:
Entities
::
MRNote
present
note
,
with:
::
API
::
Entities
::
MRNote
else
else
render_api_error!
(
"Failed to save note
#{
note
.
errors
.
messages
}
"
,
400
)
render_api_error!
(
"Failed to save note
#{
note
.
errors
.
messages
}
"
,
400
)
end
end
end
end
desc
'List issues that will be closed on merge'
do
desc
'List issues that will be closed on merge'
do
success
Entities
::
MRNote
success
::
API
::
Entities
::
MRNote
end
end
params
do
params
do
use
:pagination
use
:pagination
...
...
lib/api/v3/project_snippets.rb
View file @
626e79b6
...
@@ -24,28 +24,28 @@ module API
...
@@ -24,28 +24,28 @@ module API
end
end
desc
'Get all project snippets'
do
desc
'Get all project snippets'
do
success
Entities
::
ProjectSnippetV3
success
::
API
::
V3
::
Entities
::
ProjectSnippet
end
end
params
do
params
do
use
:pagination
use
:pagination
end
end
get
":id/snippets"
do
get
":id/snippets"
do
present
paginate
(
snippets_for_current_user
),
with:
Entities
::
ProjectSnippetV3
present
paginate
(
snippets_for_current_user
),
with:
::
API
::
V3
::
Entities
::
ProjectSnippet
end
end
desc
'Get a single project snippet'
do
desc
'Get a single project snippet'
do
success
Entities
::
ProjectSnippetV3
success
::
API
::
V3
::
Entities
::
ProjectSnippet
end
end
params
do
params
do
requires
:snippet_id
,
type:
Integer
,
desc:
'The ID of a project snippet'
requires
:snippet_id
,
type:
Integer
,
desc:
'The ID of a project snippet'
end
end
get
":id/snippets/:snippet_id"
do
get
":id/snippets/:snippet_id"
do
snippet
=
snippets_for_current_user
.
find
(
params
[
:snippet_id
])
snippet
=
snippets_for_current_user
.
find
(
params
[
:snippet_id
])
present
snippet
,
with:
Entities
::
ProjectSnippetV3
present
snippet
,
with:
::
API
::
V3
::
Entities
::
ProjectSnippet
end
end
desc
'Create a new project snippet'
do
desc
'Create a new project snippet'
do
success
Entities
::
ProjectSnippetV3
success
::
API
::
V3
::
Entities
::
ProjectSnippet
end
end
params
do
params
do
requires
:title
,
type:
String
,
desc:
'The title of the snippet'
requires
:title
,
type:
String
,
desc:
'The title of the snippet'
...
@@ -65,14 +65,14 @@ module API
...
@@ -65,14 +65,14 @@ module API
snippet
=
CreateSnippetService
.
new
(
user_project
,
current_user
,
snippet_params
).
execute
snippet
=
CreateSnippetService
.
new
(
user_project
,
current_user
,
snippet_params
).
execute
if
snippet
.
persisted?
if
snippet
.
persisted?
present
snippet
,
with:
Entities
::
ProjectSnippetV3
present
snippet
,
with:
::
API
::
V3
::
Entities
::
ProjectSnippet
else
else
render_validation_error!
(
snippet
)
render_validation_error!
(
snippet
)
end
end
end
end
desc
'Update an existing project snippet'
do
desc
'Update an existing project snippet'
do
success
Entities
::
ProjectSnippetV3
success
::
API
::
V3
::
Entities
::
ProjectSnippet
end
end
params
do
params
do
requires
:snippet_id
,
type:
Integer
,
desc:
'The ID of a project snippet'
requires
:snippet_id
,
type:
Integer
,
desc:
'The ID of a project snippet'
...
@@ -99,7 +99,7 @@ module API
...
@@ -99,7 +99,7 @@ module API
snippet_params
).
execute
snippet_params
).
execute
if
snippet
.
persisted?
if
snippet
.
persisted?
present
snippet
,
with:
Entities
::
ProjectSnippetV3
present
snippet
,
with:
::
API
::
V3
::
Entities
::
ProjectSnippet
else
else
render_validation_error!
(
snippet
)
render_validation_error!
(
snippet
)
end
end
...
...
lib/api/v3/projects.rb
View file @
626e79b6
...
@@ -74,32 +74,32 @@ module API
...
@@ -74,32 +74,32 @@ module API
def
present_projects
(
projects
,
options
=
{})
def
present_projects
(
projects
,
options
=
{})
options
=
options
.
reverse_merge
(
options
=
options
.
reverse_merge
(
with:
Entities
::
Project
,
with:
::
API
::
Entities
::
Project
,
current_user:
current_user
,
current_user:
current_user
,
simple:
params
[
:simple
],
simple:
params
[
:simple
],
)
)
projects
=
filter_projects
(
projects
)
projects
=
filter_projects
(
projects
)
projects
=
projects
.
with_statistics
if
options
[
:statistics
]
projects
=
projects
.
with_statistics
if
options
[
:statistics
]
options
[
:with
]
=
Entities
::
BasicProjectDetails
if
options
[
:simple
]
options
[
:with
]
=
::
API
::
Entities
::
BasicProjectDetails
if
options
[
:simple
]
present
paginate
(
projects
),
options
present
paginate
(
projects
),
options
end
end
end
end
desc
'Get a list of visible projects for authenticated user'
do
desc
'Get a list of visible projects for authenticated user'
do
success
Entities
::
BasicProjectDetails
success
::
API
::
Entities
::
BasicProjectDetails
end
end
params
do
params
do
use
:collection_params
use
:collection_params
end
end
get
'/visible'
do
get
'/visible'
do
entity
=
current_user
?
Entities
::
ProjectWithAccess
:
Entities
::
BasicProjectDetails
entity
=
current_user
?
::
API
::
Entities
::
ProjectWithAccess
:
::
API
::
Entities
::
BasicProjectDetails
present_projects
ProjectsFinder
.
new
.
execute
(
current_user
),
with:
entity
present_projects
ProjectsFinder
.
new
.
execute
(
current_user
),
with:
entity
end
end
desc
'Get a projects list for authenticated user'
do
desc
'Get a projects list for authenticated user'
do
success
Entities
::
BasicProjectDetails
success
::
API
::
Entities
::
BasicProjectDetails
end
end
params
do
params
do
use
:collection_params
use
:collection_params
...
@@ -108,11 +108,11 @@ module API
...
@@ -108,11 +108,11 @@ module API
authenticate!
authenticate!
present_projects
current_user
.
authorized_projects
,
present_projects
current_user
.
authorized_projects
,
with:
Entities
::
ProjectWithAccess
with:
::
API
::
Entities
::
ProjectWithAccess
end
end
desc
'Get an owned projects list for authenticated user'
do
desc
'Get an owned projects list for authenticated user'
do
success
Entities
::
BasicProjectDetails
success
::
API
::
Entities
::
BasicProjectDetails
end
end
params
do
params
do
use
:collection_params
use
:collection_params
...
@@ -122,12 +122,12 @@ module API
...
@@ -122,12 +122,12 @@ module API
authenticate!
authenticate!
present_projects
current_user
.
owned_projects
,
present_projects
current_user
.
owned_projects
,
with:
Entities
::
ProjectWithAccess
,
with:
::
API
::
Entities
::
ProjectWithAccess
,
statistics:
params
[
:statistics
]
statistics:
params
[
:statistics
]
end
end
desc
'Gets starred project for the authenticated user'
do
desc
'Gets starred project for the authenticated user'
do
success
Entities
::
BasicProjectDetails
success
::
API
::
Entities
::
BasicProjectDetails
end
end
params
do
params
do
use
:collection_params
use
:collection_params
...
@@ -139,7 +139,7 @@ module API
...
@@ -139,7 +139,7 @@ module API
end
end
desc
'Get all projects for admin user'
do
desc
'Get all projects for admin user'
do
success
Entities
::
BasicProjectDetails
success
::
API
::
Entities
::
BasicProjectDetails
end
end
params
do
params
do
use
:collection_params
use
:collection_params
...
@@ -148,11 +148,11 @@ module API
...
@@ -148,11 +148,11 @@ module API
get
'/all'
do
get
'/all'
do
authenticated_as_admin!
authenticated_as_admin!
present_projects
Project
.
all
,
with:
Entities
::
ProjectWithAccess
,
statistics:
params
[
:statistics
]
present_projects
Project
.
all
,
with:
::
API
::
Entities
::
ProjectWithAccess
,
statistics:
params
[
:statistics
]
end
end
desc
'Search for projects the current user has access to'
do
desc
'Search for projects the current user has access to'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
params
do
params
do
requires
:query
,
type:
String
,
desc:
'The project name to be searched'
requires
:query
,
type:
String
,
desc:
'The project name to be searched'
...
@@ -164,11 +164,11 @@ module API
...
@@ -164,11 +164,11 @@ module API
projects
=
search_service
.
objects
(
'projects'
,
params
[
:page
])
projects
=
search_service
.
objects
(
'projects'
,
params
[
:page
])
projects
=
projects
.
reorder
(
params
[
:order_by
]
=>
params
[
:sort
])
projects
=
projects
.
reorder
(
params
[
:order_by
]
=>
params
[
:sort
])
present
paginate
(
projects
),
with:
Entities
::
Project
present
paginate
(
projects
),
with:
::
API
::
Entities
::
Project
end
end
desc
'Create new project'
do
desc
'Create new project'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
params
do
params
do
requires
:name
,
type:
String
,
desc:
'The name of the project'
requires
:name
,
type:
String
,
desc:
'The name of the project'
...
@@ -181,7 +181,7 @@ module API
...
@@ -181,7 +181,7 @@ module API
project
=
::
Projects
::
CreateService
.
new
(
current_user
,
attrs
).
execute
project
=
::
Projects
::
CreateService
.
new
(
current_user
,
attrs
).
execute
if
project
.
saved?
if
project
.
saved?
present
project
,
with:
Entities
::
Project
,
present
project
,
with:
::
API
::
Entities
::
Project
,
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
project
)
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
project
)
else
else
if
project
.
errors
[
:limit_reached
].
present?
if
project
.
errors
[
:limit_reached
].
present?
...
@@ -192,7 +192,7 @@ module API
...
@@ -192,7 +192,7 @@ module API
end
end
desc
'Create new project for a specified user. Only available to admin users.'
do
desc
'Create new project for a specified user. Only available to admin users.'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
params
do
params
do
requires
:name
,
type:
String
,
desc:
'The name of the project'
requires
:name
,
type:
String
,
desc:
'The name of the project'
...
@@ -210,7 +210,7 @@ module API
...
@@ -210,7 +210,7 @@ module API
project
=
::
Projects
::
CreateService
.
new
(
user
,
attrs
).
execute
project
=
::
Projects
::
CreateService
.
new
(
user
,
attrs
).
execute
if
project
.
saved?
if
project
.
saved?
present
project
,
with:
Entities
::
Project
,
present
project
,
with:
::
API
::
Entities
::
Project
,
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
project
)
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
project
)
else
else
render_validation_error!
(
project
)
render_validation_error!
(
project
)
...
@@ -223,26 +223,26 @@ module API
...
@@ -223,26 +223,26 @@ module API
end
end
resource
:projects
,
requirements:
{
id:
/[^\/]+/
}
do
resource
:projects
,
requirements:
{
id:
/[^\/]+/
}
do
desc
'Get a single project'
do
desc
'Get a single project'
do
success
Entities
::
ProjectWithAccess
success
::
API
::
Entities
::
ProjectWithAccess
end
end
get
":id"
do
get
":id"
do
entity
=
current_user
?
Entities
::
ProjectWithAccess
:
Entities
::
BasicProjectDetails
entity
=
current_user
?
::
API
::
Entities
::
ProjectWithAccess
:
::
API
::
Entities
::
BasicProjectDetails
present
user_project
,
with:
entity
,
current_user:
current_user
,
present
user_project
,
with:
entity
,
current_user:
current_user
,
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
user_project
)
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
user_project
)
end
end
desc
'Get events for a single project'
do
desc
'Get events for a single project'
do
success
Entities
::
Event
success
::
API
::
Entities
::
Event
end
end
params
do
params
do
use
:pagination
use
:pagination
end
end
get
":id/events"
do
get
":id/events"
do
present
paginate
(
user_project
.
events
.
recent
),
with:
Entities
::
Event
present
paginate
(
user_project
.
events
.
recent
),
with:
::
API
::
Entities
::
Event
end
end
desc
'Fork new project for the current user or provided namespace.'
do
desc
'Fork new project for the current user or provided namespace.'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
params
do
params
do
optional
:namespace
,
type:
String
,
desc:
'The ID or name of the namespace that the project will be forked into'
optional
:namespace
,
type:
String
,
desc:
'The ID or name of the namespace that the project will be forked into'
...
@@ -268,13 +268,13 @@ module API
...
@@ -268,13 +268,13 @@ module API
if
forked_project
.
errors
.
any?
if
forked_project
.
errors
.
any?
conflict!
(
forked_project
.
errors
.
messages
)
conflict!
(
forked_project
.
errors
.
messages
)
else
else
present
forked_project
,
with:
Entities
::
Project
,
present
forked_project
,
with:
::
API
::
Entities
::
Project
,
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
forked_project
)
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
forked_project
)
end
end
end
end
desc
'Update an existing project'
do
desc
'Update an existing project'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
params
do
params
do
optional
:name
,
type:
String
,
desc:
'The name of the project'
optional
:name
,
type:
String
,
desc:
'The name of the project'
...
@@ -298,7 +298,7 @@ module API
...
@@ -298,7 +298,7 @@ module API
result
=
::
Projects
::
UpdateService
.
new
(
user_project
,
current_user
,
attrs
).
execute
result
=
::
Projects
::
UpdateService
.
new
(
user_project
,
current_user
,
attrs
).
execute
if
result
[
:status
]
==
:success
if
result
[
:status
]
==
:success
present
user_project
,
with:
Entities
::
Project
,
present
user_project
,
with:
::
API
::
Entities
::
Project
,
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
user_project
)
user_can_admin_project:
can?
(
current_user
,
:admin_project
,
user_project
)
else
else
render_validation_error!
(
user_project
)
render_validation_error!
(
user_project
)
...
@@ -306,29 +306,29 @@ module API
...
@@ -306,29 +306,29 @@ module API
end
end
desc
'Archive a project'
do
desc
'Archive a project'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
post
':id/archive'
do
post
':id/archive'
do
authorize!
(
:archive_project
,
user_project
)
authorize!
(
:archive_project
,
user_project
)
user_project
.
archive!
user_project
.
archive!
present
user_project
,
with:
Entities
::
Project
present
user_project
,
with:
::
API
::
Entities
::
Project
end
end
desc
'Unarchive a project'
do
desc
'Unarchive a project'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
post
':id/unarchive'
do
post
':id/unarchive'
do
authorize!
(
:archive_project
,
user_project
)
authorize!
(
:archive_project
,
user_project
)
user_project
.
unarchive!
user_project
.
unarchive!
present
user_project
,
with:
Entities
::
Project
present
user_project
,
with:
::
API
::
Entities
::
Project
end
end
desc
'Star a project'
do
desc
'Star a project'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
post
':id/star'
do
post
':id/star'
do
if
current_user
.
starred?
(
user_project
)
if
current_user
.
starred?
(
user_project
)
...
@@ -337,19 +337,19 @@ module API
...
@@ -337,19 +337,19 @@ module API
current_user
.
toggle_star
(
user_project
)
current_user
.
toggle_star
(
user_project
)
user_project
.
reload
user_project
.
reload
present
user_project
,
with:
Entities
::
Project
present
user_project
,
with:
::
API
::
Entities
::
Project
end
end
end
end
desc
'Unstar a project'
do
desc
'Unstar a project'
do
success
Entities
::
Project
success
::
API
::
Entities
::
Project
end
end
delete
':id/star'
do
delete
':id/star'
do
if
current_user
.
starred?
(
user_project
)
if
current_user
.
starred?
(
user_project
)
current_user
.
toggle_star
(
user_project
)
current_user
.
toggle_star
(
user_project
)
user_project
.
reload
user_project
.
reload
present
user_project
,
with:
Entities
::
Project
present
user_project
,
with:
::
API
::
Entities
::
Project
else
else
not_modified!
not_modified!
end
end
...
@@ -390,7 +390,7 @@ module API
...
@@ -390,7 +390,7 @@ module API
end
end
desc
'Share the project with a group'
do
desc
'Share the project with a group'
do
success
Entities
::
ProjectGroupLink
success
::
API
::
Entities
::
ProjectGroupLink
end
end
params
do
params
do
requires
:group_id
,
type:
Integer
,
desc:
'The ID of a group'
requires
:group_id
,
type:
Integer
,
desc:
'The ID of a group'
...
@@ -412,7 +412,7 @@ module API
...
@@ -412,7 +412,7 @@ module API
link
=
user_project
.
project_group_links
.
new
(
declared_params
(
include_missing:
false
))
link
=
user_project
.
project_group_links
.
new
(
declared_params
(
include_missing:
false
))
if
link
.
save
if
link
.
save
present
link
,
with:
Entities
::
ProjectGroupLink
present
link
,
with:
::
API
::
Entities
::
ProjectGroupLink
else
else
render_api_error!
(
link
.
errors
.
full_messages
.
first
,
409
)
render_api_error!
(
link
.
errors
.
full_messages
.
first
,
409
)
end
end
...
@@ -440,7 +440,7 @@ module API
...
@@ -440,7 +440,7 @@ module API
end
end
desc
'Get the users list of a project'
do
desc
'Get the users list of a project'
do
success
Entities
::
UserBasic
success
::
API
::
Entities
::
UserBasic
end
end
params
do
params
do
optional
:search
,
type:
String
,
desc:
'Return list of users matching the search criteria'
optional
:search
,
type:
String
,
desc:
'Return list of users matching the search criteria'
...
@@ -450,7 +450,7 @@ module API
...
@@ -450,7 +450,7 @@ module API
users
=
user_project
.
team
.
users
users
=
user_project
.
team
.
users
users
=
users
.
search
(
params
[
:search
])
if
params
[
:search
].
present?
users
=
users
.
search
(
params
[
:search
])
if
params
[
:search
].
present?
present
paginate
(
users
),
with:
Entities
::
UserBasic
present
paginate
(
users
),
with:
::
API
::
Entities
::
UserBasic
end
end
end
end
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment