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
61910eb8
Commit
61910eb8
authored
Jul 04, 2012
by
Nihad Abbasov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ability to update and get a raw snippet via API
parent
fbd559d4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
59 additions
and
1 deletion
+59
-1
projects.rb
lib/api/projects.rb
+41
-0
projects_spec.rb
spec/api/projects_spec.rb
+18
-1
No files found.
lib/api/projects.rb
View file @
61910eb8
...
...
@@ -86,6 +86,34 @@ module Gitlab
end
end
# Update an existing project snippet
#
# Parameters:
# id (required) - The code name of a project
# snippet_id (required) - The ID of a project snippet
# title (optional) - The title of a snippet
# file_name (optional) - The name of a snippet file
# lifetime (optional) - The expiration date of a snippet
# code (optional) - The content of a snippet
# Example Request:
# PUT /projects/:id/snippets/:snippet_id
put
":id/snippets/:snippet_id"
do
@project
=
current_user
.
projects
.
find_by_code
(
params
[
:id
])
@snippet
=
@project
.
snippets
.
find
(
params
[
:snippet_id
])
parameters
=
{
:title
=>
(
params
[
:title
]
||
@snippet
.
title
),
:file_name
=>
(
params
[
:file_name
]
||
@snippet
.
file_name
),
:expires_at
=>
(
params
[
:lifetime
]
||
@snippet
.
expires_at
),
:content
=>
(
params
[
:code
]
||
@snippet
.
content
)
}
if
@snippet
.
update_attributes
(
parameters
)
present
@snippet
,
:with
=>
Entities
::
ProjectSnippet
else
error!
({
'message'
=>
'404 Not found'
},
404
)
end
end
# Delete a project snippet
#
# Parameters:
...
...
@@ -98,6 +126,19 @@ module Gitlab
@snippet
=
@project
.
snippets
.
find
(
params
[
:snippet_id
])
@snippet
.
destroy
end
# Get a raw project snippet
#
# Parameters:
# id (required) - The code of a project
# snippet_id (required) - The ID of a project snippet
# Example Request:
# GET /projects/:id/snippets/:snippet_id/raw
get
":id/snippets/:snippet_id/raw"
do
@project
=
current_user
.
projects
.
find_by_code
(
params
[
:id
])
@snippet
=
@project
.
snippets
.
find
(
params
[
:snippet_id
])
present
@snippet
.
content
end
end
end
end
spec/api/projects_spec.rb
View file @
61910eb8
...
...
@@ -3,7 +3,7 @@ require 'spec_helper'
describe
Gitlab
::
API
do
let
(
:user
)
{
Factory
:user
}
let!
(
:project
)
{
Factory
:project
,
:owner
=>
user
}
let!
(
:snippet
)
{
Factory
:snippet
,
:author
=>
user
,
:project
=>
project
}
let!
(
:snippet
)
{
Factory
:snippet
,
:author
=>
user
,
:project
=>
project
,
:title
=>
'example'
}
before
{
project
.
add_access
(
user
,
:read
)
}
describe
"GET /projects"
do
...
...
@@ -67,6 +67,16 @@ describe Gitlab::API do
end
end
describe
"PUT /projects/:id/snippets"
do
it
"should update an existing project snippet"
do
put
"
#{
api_prefix
}
/projects/
#{
project
.
code
}
/snippets/
#{
snippet
.
id
}
?private_token=
#{
user
.
private_token
}
"
,
:code
=>
'updated code'
response
.
status
.
should
==
200
json_response
[
'title'
].
should
==
'example'
snippet
.
reload
.
content
.
should
==
'updated code'
end
end
describe
"DELETE /projects/:id/snippets/:snippet_id"
do
it
"should create a new project snippet"
do
expect
{
...
...
@@ -74,4 +84,11 @@ describe Gitlab::API do
}.
should
change
{
Snippet
.
count
}.
by
(
-
1
)
end
end
describe
"GET /projects/:id/snippets/:snippet_id/raw"
do
it
"should get a raw project snippet"
do
get
"
#{
api_prefix
}
/projects/
#{
project
.
code
}
/snippets/
#{
snippet
.
id
}
/raw?private_token=
#{
user
.
private_token
}
"
response
.
status
.
should
==
200
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