Skip to content

Commit d412cf3

Browse files
authored
Merge pull request #107 from Jess-White/feature/412-add-invitations-uninvite-endpoint
Add invitation uninvite endpoint (destroy)
2 parents 93293a0 + aceb057 commit d412cf3

File tree

2 files changed

+55
-1
lines changed

2 files changed

+55
-1
lines changed

app/controllers/api/invitations_controller.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,13 @@ def reinvite
3434
render 'show.json.jb'
3535
end
3636

37+
def destroy
38+
@invitation = Invitation.find(params[:id])
39+
@invitation.destroy!
40+
41+
render 'show.json.jb'
42+
end
43+
3744
private
3845

3946
def create_invitation_params

spec/controllers/api/invitations_controller_spec.rb

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,53 @@
207207
end
208208

209209
describe 'DELETE /organization/:organization_id/invitations/:id' do
210-
pending "add some examples (or delete) #{__FILE__}"
210+
let(:invitation) { create(:invitation, organization: organization) }
211+
212+
context 'when organization does not exist' do
213+
it 'renders 401' do
214+
delete :destroy, params: {
215+
organization_id: 123,
216+
id: invitation.id
217+
}
218+
219+
expect(response).to have_http_status(401)
220+
end
221+
end
222+
223+
context 'when invitation does not exist' do
224+
it 'renders 401' do
225+
delete :destroy, params: {
226+
organization_id: organization.id,
227+
id: 123
228+
}
229+
230+
expect(response).to have_http_status(401)
231+
end
232+
end
233+
234+
context 'when invitation exists' do
235+
before do
236+
delete :destroy, params: {
237+
organization_id: organization.id,
238+
id: invitation.id
239+
}
240+
end
241+
242+
it 'renders 200 with deleted invitation' do
243+
expect(response).to have_http_status(200)
244+
expect(JSON.parse(response.body).keys).to contain_exactly(*invitation_fields)
245+
expect(JSON.parse(response.body)).to match(
246+
a_hash_including(
247+
'id' => invitation.id
248+
)
249+
)
250+
end
251+
252+
it 'deletes invitation' do
253+
expect do
254+
Invitation.find(invitation.id)
255+
end.to raise_error(ActiveRecord::RecordNotFound)
256+
end
257+
end
211258
end
212259
end

0 commit comments

Comments
 (0)