Feito endpoin de busca e salvar.

This commit is contained in:
Carlos Henrique
2026-02-26 05:16:34 -03:00
parent 3edd6bc194
commit ec342f77a6
13 changed files with 352 additions and 335 deletions

View File

@@ -1,9 +1,11 @@
package br.com.stackpanel.api.controller; package br.com.stackpanel.api.controller;
import br.com.stackpanel.api.entity.CoolifyPersistence;
import br.com.stackpanel.api.entity.dto.CoolifyResponse; import br.com.stackpanel.api.entity.dto.CoolifyResponse;
import br.com.stackpanel.api.entity.dto.CoolifyResponseProjects; import br.com.stackpanel.api.entity.dto.CoolifyResponseProjects;
import br.com.stackpanel.api.service.CoolifyService; import br.com.stackpanel.api.service.CoolifyService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@@ -21,8 +23,8 @@ public class CoolifyController {
} }
@GetMapping("/buscar") @GetMapping("/buscar")
public List<CoolifyResponse> buscarProjects(){ public ResponseEntity<List<CoolifyPersistence>> buscarProjects(){
return coolifyService.buscarProjects(); return ResponseEntity.ok(coolifyService.buscarProjects());
} }
@GetMapping("/buscarProject") @GetMapping("/buscarProject")

View File

@@ -14,8 +14,8 @@ public class CoolifyPersistence {
@Column(name = "NAMPRT") @Column(name = "NAMPRT")
private String nameProject; private String nameProject;
@Column(name = "UUID") @Column(name = "UUID", unique = true)
private String uudi; private String uuid;
@Column(name = "DSCPRT") @Column(name = "DSCPRT")
private String description; private String description;
@@ -23,10 +23,9 @@ public class CoolifyPersistence {
public CoolifyPersistence() { public CoolifyPersistence() {
} }
public CoolifyPersistence(Long sequence, String nameProject, String uudi, String description) { public CoolifyPersistence(String nameProject, String uuid, String description) {
this.sequence = sequence;
this.nameProject = nameProject; this.nameProject = nameProject;
this.uudi = uudi; this.uuid = uuid;
this.description = description; this.description = description;
} }
@@ -46,12 +45,12 @@ public class CoolifyPersistence {
this.nameProject = nameProject; this.nameProject = nameProject;
} }
public String getUudi() { public String getUuid() {
return uudi; return uuid;
} }
public void setUudi(String uudi) { public void setUuid(String uuid) {
this.uudi = uudi; this.uuid = uuid;
} }
public String getDescription() { public String getDescription() {

View File

@@ -16,7 +16,6 @@ public class CoolifyMapper {
} }
return new CoolifyPersistence( return new CoolifyPersistence(
response.id(),
response.name(), response.name(),
response.uuid(), response.uuid(),
response.description() response.description()

View File

@@ -5,10 +5,15 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public interface CoolifyRepository extends JpaRepository<CoolifyPersistence, Long> { public interface CoolifyRepository extends JpaRepository<CoolifyPersistence, Long> {
@Query(value = "SELECT col FROM CoolifyPersistence col WHERE col.uudi in (:uuid)") @Query(value = "SELECT col.uuid FROM CoolifyPersistence col")
CoolifyPersistence buscarProjectsUUIDs(String uuid); List<String> buscarListaUuids();
@Query(value = "SELECT col FROM CoolifyPersistence col")
List<CoolifyPersistence> buscarProjects();
} }

View File

@@ -1,5 +1,6 @@
package br.com.stackpanel.api.service; package br.com.stackpanel.api.service;
import br.com.stackpanel.api.entity.CoolifyPersistence;
import br.com.stackpanel.api.entity.dto.CoolifyResponse; import br.com.stackpanel.api.entity.dto.CoolifyResponse;
import br.com.stackpanel.api.entity.dto.CoolifyResponseProjects; import br.com.stackpanel.api.entity.dto.CoolifyResponseProjects;
@@ -7,7 +8,7 @@ import java.util.List;
public interface CoolifyService { public interface CoolifyService {
List<CoolifyResponse> buscarProjects(); List<CoolifyPersistence> buscarProjects();
CoolifyResponseProjects buscarProjetosUuid(String uuid); CoolifyResponseProjects buscarProjetosUuid(String uuid);

View File

@@ -9,11 +9,13 @@ import br.com.stackpanel.api.entity.mapper.CoolifyMapper;
import br.com.stackpanel.api.integration.CoolifyClient; import br.com.stackpanel.api.integration.CoolifyClient;
import br.com.stackpanel.api.repository.CoolifyRepository; import br.com.stackpanel.api.repository.CoolifyRepository;
import br.com.stackpanel.api.service.CoolifyService; import br.com.stackpanel.api.service.CoolifyService;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collector; import java.util.stream.Collector;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -30,22 +32,31 @@ public class CoolifyServiceImpl implements CoolifyService {
this.mapper = mapper; this.mapper = mapper;
} }
public List<CoolifyResponse> buscarProjects(){ @Override
return coolifyClient.buscarProjects(); @Transactional
public List<CoolifyPersistence> buscarProjects(){
List<CoolifyResponse> projects = coolifyClient.buscarProjects();
List<String> dbProjects = repository.buscarListaUuids();
return projects.stream()
.filter(item -> !dbProjects.contains(item.uuid()))
.map(mapper::toDomain)
.map(this::salvarProjects)
.toList();
} }
// public List<CoolifyPersistence> salvarProjetos(){
// List<CoolifyResponse> response = coolifyClient.buscarProjects(); private CoolifyPersistence salvarProjects(CoolifyPersistence coolifyPersistence){
// return repository.save(coolifyPersistence);
// List<String> uuids = new ArrayList<>(); }
//
// for (CoolifyResponse unique: response) {
// uuids.add(unique.uuid());
// }
//
// return uuids;
//
// }
@Override @Override
public CoolifyResponseProjects buscarProjetosUuid(String uuid){ public CoolifyResponseProjects buscarProjetosUuid(String uuid){

View File

@@ -3,7 +3,7 @@ spring.config.activate.on-profile=local
spring.datasource.password=SnLcLToyTLVlTmODy9X8WkJLxD5M6i7rFJEQPUgnrIqwH9zYpkX7rczfH8wcPSD1 spring.datasource.password=SnLcLToyTLVlTmODy9X8WkJLxD5M6i7rFJEQPUgnrIqwH9zYpkX7rczfH8wcPSD1
spring.datasource.username=nexus spring.datasource.username=nexus
spring.datasource.url=jdbc:postgresql://129.153.206.118:5676/nexusdb spring.datasource.url=jdbc:postgresql://db.stackpanel.com.br/nexusdb
spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.ddl-auto=update