diff options
Diffstat (limited to 'lib/api/projects.rb')
-rw-r--r-- | lib/api/projects.rb | 53 |
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 |