Skip to content
Snippets Groups Projects
Commit 99278e85 authored by abdu's avatar abdu
Browse files

add openapi/swagger docs for usercontroller

parent ba5af8a1
No related branches found
No related tags found
No related merge requests found
......@@ -50,7 +50,12 @@
<version>1.18.30</version>
<scope>provided</scope>
</dependency>
</dependencies>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
<build>
<plugins>
......
......@@ -3,6 +3,7 @@ package com.cloudcomputing.todo.controller;
import com.cloudcomputing.todo.dto.TodoDTO;
import com.cloudcomputing.todo.dto.UserDTO;
import com.cloudcomputing.todo.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
......@@ -18,6 +19,7 @@ public class UserController {
@Autowired
private UserService userService;
@Operation(summary = "sign up", description="creates a new user in the system")
@PostMapping("/signup")
public ResponseEntity<UserDTO> singUp(@RequestBody UserDTO userDTO) {
UserDTO newUser = userService.createUser(userDTO);
......@@ -29,6 +31,7 @@ public class UserController {
return new ResponseEntity<>(HttpStatus.CONFLICT);
}
@Operation(summary = "sign in", description = "logs in an existing user")
@PostMapping("/signin")
public ResponseEntity<UserDTO> login(HttpServletRequest request, @RequestBody UserDTO user) {
boolean loginSuccessful = userService.login(request, user);
......@@ -39,6 +42,7 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
@Operation(summary = "sign out", description = "signs out a logged in user")
@PostMapping("/signout")
public ResponseEntity<String> logout(HttpServletRequest request, @RequestBody String userId) {
boolean logoutSuccessful = userService.logout(request, userId);
......@@ -49,6 +53,7 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
@Operation(summary = "add new todo", description = "adds a new todo for the currently logged in user")
@PostMapping("/addTodo")
public ResponseEntity<List<TodoDTO>> addTodo(HttpServletRequest request, @RequestBody TodoDTO todoDTO) {
if(userService.validateSession(request)){
......@@ -59,6 +64,7 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
@Operation(summary = "delete existing todo", description = "deletes a specified todo for the currently logged in user")
@DeleteMapping("/deleteTodo")
public ResponseEntity<List<TodoDTO>> deleteTodo(HttpServletRequest request, @RequestParam String userId, @RequestParam String todoId) {
System.out.println("controller here");
......@@ -71,6 +77,7 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
@Operation(summary = "get all todos", description = "returns all todos for the currently logged in user")
@GetMapping("/getAllTodos")
public ResponseEntity<List<TodoDTO>> getAllTodos(HttpServletRequest request, @RequestParam String userId) {
if(userService.validateSession(request)){
......@@ -81,6 +88,7 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
@Operation(summary = "mark a todo as completed", description = "sets the specified todos status to 'completed'")
@PatchMapping("/setTodoComplete")
public ResponseEntity<List<TodoDTO>> setTodoComplete(HttpServletRequest request, @RequestParam String userId, @RequestParam String todoId) {
if(userService.validateSession(request)){
......@@ -91,6 +99,7 @@ public class UserController {
return new ResponseEntity<>(null, HttpStatus.UNAUTHORIZED);
}
@Operation(summary = "validate the session", description = "checks if the current session / jsessionid is still valid")
@GetMapping("/validateSession")
public ResponseEntity<Boolean> validateSession(HttpServletRequest request) {
if(userService.validateSession(request)){
......
spring.application.name=todo
server.port=9876
spring.data.mongodb.uri=mongodb://tododbuser:tododbadminpassword@192.168.179.24:27017/todo
#openapi setup
springdoc.api-docs.path=/v3/api-docs
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment