diff --git a/src/main/java/com/smartharvester/controller/SmartHarvesterCatalogController.java b/src/main/java/com/smartharvester/controller/SmartHarvesterCatalogController.java new file mode 100644 index 0000000000000000000000000000000000000000..1298c6474f54436413aa40733a8f293d9c8d4f88 --- /dev/null +++ b/src/main/java/com/smartharvester/controller/SmartHarvesterCatalogController.java @@ -0,0 +1,59 @@ +package com.smartharvester.controller; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.mongodb.client.FindIterable; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.MongoIterable; +import com.smartharvester.dao.CatalogDaoRepository; +import com.smartharvester.dao.OpenApiDaoRepository; +import com.smartharvester.dao.UserDaoRepository; +import com.smartharvester.exception.ResourceNotFoundException; +import com.smartharvester.model.login.response.MessageResponse; +import com.smartharvester.model.user.Catalog; +import com.smartharvester.model.user.SmartHarvesterUser; +import com.smartharvester.service.UserDaoSevice; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.bson.Document; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +@CrossOrigin(origins = "*") +@RestController +@Tag(name = "SmartHarvester catalog", description = "Catalog management") +@RequestMapping("/harvester/api/catalogs") +public class SmartHarvesterCatalogController { + + @Autowired + private CatalogDaoRepository catalogDoaRepository; + + @Autowired + private OpenApiDaoRepository openApiDaoRepository; + + @DeleteMapping("/{catId}") + public ResponseEntity<?> registerUser(@PathVariable("catId") String catId) { + + Catalog catalog = catalogDoaRepository.findByCatId(catId); + if (catalog == null) { + return ResponseEntity + .badRequest() + .body(new MessageResponse("Error: Catalog not found!",HttpStatus.NOT_FOUND)); + } + + if (openApiDaoRepository.existsByCatalogId(catId)) { + openApiDaoRepository.delete(openApiDaoRepository.findByUUID(catId)); + } + + catalogDoaRepository.deleteByCatId(catalog.getCatId()); + + return ResponseEntity.ok(new MessageResponse("Catalog deleted succefully!",HttpStatus.OK)); + } + +} diff --git a/src/main/java/com/smartharvester/dao/CatalogDaoRepository.java b/src/main/java/com/smartharvester/dao/CatalogDaoRepository.java index 974a4f58ca06c8aafb5202bb3e0846a99d653d2e..3551b083031ab58e40e38f8667c57577bfd2e88b 100644 --- a/src/main/java/com/smartharvester/dao/CatalogDaoRepository.java +++ b/src/main/java/com/smartharvester/dao/CatalogDaoRepository.java @@ -4,14 +4,18 @@ import java.util.List; import com.smartharvester.model.user.Catalog; +import org.springframework.data.mongodb.repository.DeleteQuery; import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.stereotype.Repository; @Repository -public interface CatalogDaoRepository extends MongoRepository<Catalog, Integer> { +public interface CatalogDaoRepository extends MongoRepository<Catalog, String> { List<Catalog> findByUserUuid(String userUuid); Catalog findByCatId(String catId); + @DeleteQuery + public void deleteByCatId(String catId); + }