Add delete feature to triggers API
This commit is contained in:
		
							parent
							
								
									3098500835
								
							
						
					
					
						commit
						f00607431c
					
				| 
						 | 
				
			
			@ -61,6 +61,25 @@ module API
 | 
			
		|||
 | 
			
		||||
        present triggers, with: Entities::Trigger
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      # Delete trigger
 | 
			
		||||
      #
 | 
			
		||||
      # Parameters:
 | 
			
		||||
      #   id (required) - The ID of a project
 | 
			
		||||
      #   trigger_id - The ID of trigger to delete
 | 
			
		||||
      # Example Request:
 | 
			
		||||
      #   DELETE /projects/:id/triggers/:trigger_id
 | 
			
		||||
      delete ':id/triggers/:trigger_id' do
 | 
			
		||||
        authenticate!
 | 
			
		||||
        authorize_admin_project
 | 
			
		||||
 | 
			
		||||
        trigger = user_project.triggers.where(id: params[:trigger_id].to_i).first
 | 
			
		||||
        return not_found!('Trigger') unless trigger
 | 
			
		||||
 | 
			
		||||
        trigger.destroy
 | 
			
		||||
 | 
			
		||||
        present trigger, with: Entities::Trigger
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -114,4 +114,37 @@ describe API::API do
 | 
			
		|||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe 'DELETE /projects/:id/triggets/:trigger_id' do
 | 
			
		||||
    context 'authenticated user with valid permissions' do
 | 
			
		||||
      it 'should delete trigger' do
 | 
			
		||||
        expect do
 | 
			
		||||
          delete api("/projects/#{project.id}/triggers/#{trigger.id}", user)
 | 
			
		||||
        end.to change{project.triggers.count}.by(-1)
 | 
			
		||||
        expect(response.status).to eq(200)
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      it 'should responde with 404 Not Found if requesting non-existing trigger' do
 | 
			
		||||
        delete api("/projects/#{project.id}/triggers/9999", user)
 | 
			
		||||
 | 
			
		||||
        expect(response.status).to eq(404)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'authenticated user with invalid permissions' do
 | 
			
		||||
      it 'should not delete trigger' do
 | 
			
		||||
        delete api("/projects/#{project.id}/triggers/#{trigger.id}", user2)
 | 
			
		||||
 | 
			
		||||
        expect(response.status).to eq(403)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'unauthentikated user' do
 | 
			
		||||
      it 'should not delete trigger' do
 | 
			
		||||
        delete api("/projects/#{project.id}/triggers/#{trigger.id}")
 | 
			
		||||
 | 
			
		||||
        expect(response.status).to eq(401)
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue