Skip to content

Commit b4d775c

Browse files
committed
Create DELETE endpoint for removing connection
1 parent cb2119f commit b4d775c

File tree

3 files changed

+35
-7
lines changed

3 files changed

+35
-7
lines changed

src/main/java/com/savvato/tribeapp/controllers/ConnectAPIController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.savvato.tribeapp.controllers.annotations.controllers.ConnectAPIController.Connect;
44
import com.savvato.tribeapp.controllers.annotations.controllers.ConnectAPIController.GetQRCodeString;
55
import com.savvato.tribeapp.controllers.dto.ConnectRequest;
6-
import com.savvato.tribeapp.controllers.dto.ConnectionDeleteRequest;
6+
import com.savvato.tribeapp.controllers.dto.ConnectionRemovalRequest;
77
import com.savvato.tribeapp.dto.ConnectIncomingMessageDTO;
88
import com.savvato.tribeapp.services.ConnectService;
99
import io.swagger.v3.oas.annotations.Parameter;
@@ -58,7 +58,7 @@ public boolean connect(@RequestBody @Valid ConnectRequest connectRequest) {
5858
}
5959

6060
@DeleteMapping
61-
public ResponseEntity<Boolean> removeConnection(@RequestBody @Valid ConnectionDeleteRequest connectionDeleteRequest) {
61+
public ResponseEntity<Boolean> removeConnection(@RequestBody @Valid ConnectionRemovalRequest connectionDeleteRequest) {
6262
if (connectService.removeConnection(connectionDeleteRequest)) {
6363
return ResponseEntity.ok().body(true);
6464
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.savvato.tribeapp.controllers.annotations.controllers.ConnectAPIController;
2+
3+
4+
import com.savvato.tribeapp.controllers.annotations.requests.DocumentedRequestBody;
5+
import com.savvato.tribeapp.controllers.annotations.responses.BadRequest;
6+
import com.savvato.tribeapp.controllers.annotations.responses.Success;
7+
import com.savvato.tribeapp.controllers.dto.ConnectionRemovalRequest;
8+
import io.swagger.v3.oas.annotations.Operation;
9+
import io.swagger.v3.oas.annotations.media.ExampleObject;
10+
11+
import java.lang.annotation.*;
12+
13+
@Target({ElementType.METHOD, ElementType.TYPE, ElementType.ANNOTATION_TYPE})
14+
@Retention(RetentionPolicy.RUNTIME)
15+
@Documented
16+
@Operation(
17+
summary = "Delete connection between two users",
18+
description = "Provided a ConnectionRemovalRequest (see schemas), save the connection.")
19+
@DocumentedRequestBody(description = "A request to delete connection", implementation = ConnectionRemovalRequest.class)
20+
@Success(
21+
description = "Status of attempt to delete connection",
22+
examples = {
23+
@ExampleObject(name = "Connection deleted successfully", value = "true"),
24+
@ExampleObject(name = "Connection could not be deleted", value = "false"),
25+
})
26+
@BadRequest(description = "Could not delete the connection", noContent = true)
27+
public @interface RemoveConnection {
28+
}

src/test/java/com/savvato/tribeapp/controllers/ConnectAPITest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.savvato.tribeapp.config.principal.UserPrincipal;
55
import com.savvato.tribeapp.constants.Constants;
66
import com.savvato.tribeapp.controllers.dto.ConnectRequest;
7-
import com.savvato.tribeapp.controllers.dto.ConnectionDeleteRequest;
7+
import com.savvato.tribeapp.controllers.dto.ConnectionRemovalRequest;
88
import com.savvato.tribeapp.entities.User;
99
import com.savvato.tribeapp.entities.UserRole;
1010
import com.savvato.tribeapp.services.*;
@@ -196,11 +196,11 @@ public void removeConnectionHappyPath() throws Exception {
196196
.thenReturn(new UserPrincipal(user));
197197
String auth = AuthServiceImpl.generateAccessToken(user);
198198

199-
ConnectionDeleteRequest connectionDeleteRequest = new ConnectionDeleteRequest();
199+
ConnectionRemovalRequest connectionDeleteRequest = new ConnectionRemovalRequest();
200200
connectionDeleteRequest.requestingUserId = 1L;
201201
connectionDeleteRequest.connectedWithUserId = 2L;
202202
when(connectService.removeConnection(any())).thenReturn(true);
203-
ArgumentCaptor<ConnectionDeleteRequest> connectionDeleteRequestCaptor = ArgumentCaptor.forClass(ConnectionDeleteRequest.class);
203+
ArgumentCaptor<ConnectionRemovalRequest> connectionDeleteRequestCaptor = ArgumentCaptor.forClass(ConnectionRemovalRequest.class);
204204
this.mockMvc
205205
.perform(
206206
delete("/api/connect")
@@ -222,11 +222,11 @@ public void removeConnectionWhenRemovalUnsuccessful() throws Exception {
222222
.thenReturn(new UserPrincipal(user));
223223
String auth = AuthServiceImpl.generateAccessToken(user);
224224

225-
ConnectionDeleteRequest connectionDeleteRequest = new ConnectionDeleteRequest();
225+
ConnectionRemovalRequest connectionDeleteRequest = new ConnectionRemovalRequest();
226226
connectionDeleteRequest.requestingUserId = 1L;
227227
connectionDeleteRequest.connectedWithUserId = 2L;
228228
when(connectService.removeConnection(any())).thenReturn(false);
229-
ArgumentCaptor<ConnectionDeleteRequest> connectionDeleteRequestCaptor = ArgumentCaptor.forClass(ConnectionDeleteRequest.class);
229+
ArgumentCaptor<ConnectionRemovalRequest> connectionDeleteRequestCaptor = ArgumentCaptor.forClass(ConnectionRemovalRequest.class);
230230
this.mockMvc
231231
.perform(
232232
delete("/api/connect")

0 commit comments

Comments
 (0)