diff options
Diffstat (limited to 'lib/api/note_templates.rb')
-rw-r--r-- | lib/api/note_templates.rb | 62 |
1 files changed, 57 insertions, 5 deletions
diff --git a/lib/api/note_templates.rb b/lib/api/note_templates.rb index f4ae76e7791..720b3e2013c 100644 --- a/lib/api/note_templates.rb +++ b/lib/api/note_templates.rb @@ -1,16 +1,68 @@ module API class NoteTemplates < Grape::API + include PaginationParams + before { authenticate! } - resource :note_templates - desc 'Get global notification level settings and email, defaults to Participate' do - success Entities::NoteTemplates + resource :note_templates do + desc 'Get all note templates for the authenticated user' do + success Entities::NoteTemplate end get do - + NoteTemplate.all + end + + desc 'Get a note templates for the authenticated user' do + success Entities::NoteTemplate + end + params do + requires :id, type: Integer, desc: "The ID of the note template." + end + get "note_templates/:id" do + note_template = NoteTemplate.find_by(id: params[:id]) + + present note_template, with: Entities::NoteTemplate + end + + desc 'Create a note template for the authenticated user' do + success Entities::NoteTemplate + end + params do + requires :title, type: String, desc: "The title of the note template." + requires :note, type: String, desc: "The body of the note template." end - put do + post do + note_template = NoteTemplate.create!(declared(params, include_parent_namespaces: false).to_h) + + present note_template, with: Entities::NoteTemplate, current_user: current_user + end + + desc 'Update a note template for the authenticated user' do + success Entities::NoteTemplate + end + params do + requires :id, type: Integer, desc: "The ID of the note template." + optional :title, type: String, desc: "The title of the note template." + optional :note, type: String, desc: "The body of the note template." + at_least_one_of :title, :note + end + put "note_templates/:id" do + note_template = NoteTemplate.find(params[:id]) + note_template.update_attributes(declared(params, include_parent_namespaces: false).to_h) + + present note_template, with: Entities::NoteTemplate + end + + desc 'Delete a note template for the authenticated user' do + success Entities::NoteTemplate + end + params do + requires :id, type: Integer, desc: "The ID of the note template." + end + delete "note_templates/:id" do + puts 'test' end + end end end |