summaryrefslogtreecommitdiff
path: root/lib/api/projects.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/projects.rb')
-rw-r--r--lib/api/projects.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 670d3d97acc..815092f4de5 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -45,6 +45,59 @@ module Gitlab
@project = current_user.projects.find_by_code(params[:id])
present @project.repo.tags.sort_by(&:name).reverse, :with => Entities::ProjectRepositoryTags
end
+
+ # Get a 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
+ get ":id/snippets/:snippet_id" do
+ @project = current_user.projects.find_by_code(params[:id])
+ @snippet = @project.snippets.find(params[:snippet_id])
+ present @snippet, :with => Entities::ProjectSnippet
+ end
+
+ # Create a new project snippet
+ #
+ # Parameters:
+ # id (required) - The code name of a project
+ # title (required) - The title of a snippet
+ # file_name (required) - The name of a snippet file
+ # lifetime (optional) - The expiration date of a snippet
+ # code (required) - The content of a snippet
+ # Example Request:
+ # POST /projects/:id/snippets
+ post ":id/snippets" do
+ @project = current_user.projects.find_by_code(params[:id])
+ @snippet = @project.snippets.new(
+ :title => params[:title],
+ :file_name => params[:file_name],
+ :expires_at => params[:lifetime],
+ :content => params[:code]
+ )
+ @snippet.author = current_user
+
+ if @snippet.save
+ present @snippet, :with => Entities::ProjectSnippet
+ else
+ error!({'message' => '404 Not found'}, 404)
+ end
+ end
+
+ # Delete a project snippet
+ #
+ # Parameters:
+ # id (required) - The code of a project
+ # snippet_id (required) - The ID of a project snippet
+ # Example Request:
+ # DELETE /projects/:id/snippets/:snippet_id
+ delete ":id/snippets/:snippet_id" do
+ @project = current_user.projects.find_by_code(params[:id])
+ @snippet = @project.snippets.find(params[:snippet_id])
+ @snippet.destroy
+ end
end
end
end