BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
3d6f18ce
Commit
3d6f18ce
authored
Oct 12, 2016
by
Z.J. van de Weg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
GrapeDSL for variables
parent
5aa7b13c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
42 additions
and
47 deletions
+42
-47
variables.rb
lib/api/variables.rb
+42
-47
No files found.
lib/api/variables.rb
View file @
3d6f18ce
...
...
@@ -4,27 +4,29 @@ module API
before
{
authenticate!
}
before
{
authorize!
:admin_build
,
user_project
}
params
do
requires
:id
,
type:
String
,
desc:
'The ID of a project'
end
resource
:projects
do
# Get project variables
#
# Parameters:
# id (required) - The ID of a project
# page (optional) - The page number for pagination
# per_page (optional) - The value of items per page to show
# Example Request:
# GET /projects/:id/variables
desc
'Get project variables'
do
success
Entities
::
Variable
end
params
do
optional
:page
,
type:
Integer
,
desc:
'The page number for pagination'
optional
:per_page
,
type:
Integer
,
desc:
'The value of items per page to show'
end
get
':id/variables'
do
variables
=
user_project
.
variables
present
paginate
(
variables
),
with:
Entities
::
Variable
end
# Get specific variable of a project
#
# Parameters:
# id (required) - The ID of a project
# key (required) - The `key` of variable
# Example Request:
# GET /projects/:id/variables/:key
desc
'Get a specific variable from a project'
do
success
Entities
::
Variable
end
params
do
requires
:key
,
type:
String
,
desc:
'The key of the variable'
end
get
':id/variables/:key'
do
key
=
params
[
:key
]
variable
=
user_project
.
variables
.
find_by
(
key:
key
.
to_s
)
...
...
@@ -34,18 +36,15 @@ module API
present
variable
,
with:
Entities
::
Variable
end
# Create a new variable in project
#
# Parameters:
# id (required) - The ID of a project
# key (required) - The key of variable
# value (required) - The value of variable
# Example Request:
# POST /projects/:id/variables
desc
'Create a new variable in a project'
do
success
Entities
::
Variable
end
params
do
requires
:key
,
type:
String
,
desc:
'The key of the variable'
requires
:value
,
type:
String
,
desc:
'The value of the variable'
end
post
':id/variables'
do
required_attributes!
[
:key
,
:value
]
variable
=
user_project
.
variables
.
create
(
key:
params
[
:key
],
value:
params
[
:value
])
variable
=
user_project
.
variables
.
create
(
declared
(
params
,
include_parent_namespaces:
false
).
to_h
)
if
variable
.
valid?
present
variable
,
with:
Entities
::
Variable
...
...
@@ -54,41 +53,37 @@ module API
end
end
# Update existing variable of a project
#
# Parameters:
# id (required) - The ID of a project
# key (optional) - The `key` of variable
# value (optional) - New value for `value` field of variable
# Example Request:
# PUT /projects/:id/variables/:key
desc
'Update an existing variable from a project'
do
success
Entities
::
Variable
end
params
do
optional
:key
,
type:
String
,
desc:
'The key of the variable'
optional
:value
,
type:
String
,
desc:
'The value of the variable'
end
put
':id/variables/:key'
do
variable
=
user_project
.
variables
.
find_by
(
key:
params
[
:key
]
.
to_s
)
variable
=
user_project
.
variables
.
find_by
(
key:
params
[
:key
])
return
not_found!
(
'Variable'
)
unless
variable
attrs
=
attributes_for_keys
[
:value
]
if
variable
.
update
(
attrs
)
if
variable
.
update
(
value:
params
[
:value
])
present
variable
,
with:
Entities
::
Variable
else
render_validation_error!
(
variable
)
end
end
# Delete existing variable of a project
#
# Parameters:
# id (required) - The ID of a project
# key (required) - The ID of a variable
# Example Request:
# DELETE /projects/:id/variables/:key
desc
'Delete an existing variable from a project'
do
success
Entities
::
Variable
end
params
do
requires
:key
,
type:
String
,
desc:
'The key of the variable'
end
delete
':id/variables/:key'
do
variable
=
user_project
.
variables
.
find_by
(
key:
params
[
:key
]
.
to_s
)
variable
=
user_project
.
variables
.
find_by
(
key:
params
[
:key
])
return
not_found!
(
'Variable'
)
unless
variable
variable
.
destroy
present
variable
,
with:
Entities
::
Variable
present
variable
.
destroy
,
with:
Entities
::
Variable
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