diff --git a/pom.xml b/pom.xml index 12c6610..e6f3017 100644 --- a/pom.xml +++ b/pom.xml @@ -77,11 +77,6 @@ lombok true - - org.springframework.boot - spring-boot-starter-test - test - org.json json diff --git a/src/main/java/com/consola/lis/configuration/EnumConfig.java b/src/main/java/com/consola/lis/configuration/EnumConfig.java index 83afa63..2bbe289 100644 --- a/src/main/java/com/consola/lis/configuration/EnumConfig.java +++ b/src/main/java/com/consola/lis/configuration/EnumConfig.java @@ -1,11 +1,12 @@ package com.consola.lis.configuration; + import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.DeserializationFeature; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration -public class EnumConfig{ +public class EnumConfig { @Bean public ObjectMapper objectMapper() { @@ -13,4 +14,7 @@ public ObjectMapper objectMapper() { objectMapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL, true); return objectMapper; } + + + } diff --git a/src/main/java/com/consola/lis/controller/InventoryController.java b/src/main/java/com/consola/lis/controller/InventoryController.java index 7002f41..ed4a2e9 100644 --- a/src/main/java/com/consola/lis/controller/InventoryController.java +++ b/src/main/java/com/consola/lis/controller/InventoryController.java @@ -1,5 +1,7 @@ package com.consola.lis.controller; +import com.consola.lis.dto.TableRegistersItemDTO; +import com.consola.lis.dto.TableRegistersLoanDTO; import com.consola.lis.model.enums.ItemState; import com.consola.lis.util.constans.ApiDescription; import com.consola.lis.util.constans.EndpointConstant; @@ -10,6 +12,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.PageRequest; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -49,9 +52,10 @@ public void deleteItem(@PathVariable("itemId") String itemId){ @Operation(summary = ApiDescription.DESCRIPTION_INVENTORY_TABLE) - @GetMapping(EndpointConstant.ENDPOINT_INVENTORY_TABLE) - public Map inventoryItems(Pageable pageable) { - return inventoryItemService.getAllItemsMapped(pageable); + @PostMapping(EndpointConstant.ENDPOINT_INVENTORY_TABLE) + public Map inventoryItems(@RequestBody TableRegistersItemDTO tableRegistersDTO){ + Pageable pageable = PageRequest.of(tableRegistersDTO.getPage(), tableRegistersDTO.getSize()); + return inventoryItemService.getAllItemsMapped(tableRegistersDTO.getLendable(),pageable); } @Operation(summary = ApiDescription.DESCRIPTION_ONE_ITEM) diff --git a/src/main/java/com/consola/lis/controller/LoanController.java b/src/main/java/com/consola/lis/controller/LoanController.java index 4c9c7e3..a7e24d3 100644 --- a/src/main/java/com/consola/lis/controller/LoanController.java +++ b/src/main/java/com/consola/lis/controller/LoanController.java @@ -2,6 +2,7 @@ import com.consola.lis.dto.LoanDTO; +import com.consola.lis.dto.TableRegistersLoanDTO; import com.consola.lis.model.entity.Loan; import com.consola.lis.service.LoanService; import com.consola.lis.util.constans.ApiDescription; @@ -9,6 +10,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; +import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -18,6 +20,8 @@ import java.util.List; import java.util.Map; +import static java.lang.Integer.parseInt; + @Tag(name = "Manage Loans", description = ApiDescription.DESCRIPTION_CONTROLLER_LOAN) @RestController @RequestMapping(EndpointConstant.ENDPOINT_LOAN) @@ -51,10 +55,12 @@ public List gelAllLoans(){ return loanService.getAllLoans(); } + @Operation(summary = ApiDescription.DESCRIPTION_ALL_LOANS_TABLE) - @GetMapping(EndpointConstant.ENDPOINT_ALL_LOANS_TABLE) - public Map loans(Pageable pageable){ - return loanService.getAllLoansMapper(pageable); + @PostMapping(EndpointConstant.ENDPOINT_ALL_LOANS_TABLE ) + public Map loans(@RequestBody TableRegistersLoanDTO tableRegistersDTO){ + Pageable pageable = PageRequest.of(tableRegistersDTO.getPage(), tableRegistersDTO.getSize()); + return loanService.getAllLoansMapper(tableRegistersDTO.getLoanState(),pageable); } @Operation(summary = ApiDescription.DESCRIPTION_HEADERS_LOAN) diff --git a/src/main/java/com/consola/lis/dto/LoanInfoDTO.java b/src/main/java/com/consola/lis/dto/LoanInfoDTO.java index 38ade44..a711e10 100644 --- a/src/main/java/com/consola/lis/dto/LoanInfoDTO.java +++ b/src/main/java/com/consola/lis/dto/LoanInfoDTO.java @@ -17,6 +17,8 @@ public class LoanInfoDTO { private String loanName; private String loanState; private String borrowerUser; + + private String loanItemId; private String loanType; @JsonFormat(pattern = "yyyy-MM-dd") private Date loanDate; diff --git a/src/main/java/com/consola/lis/dto/TableRegistersItemDTO.java b/src/main/java/com/consola/lis/dto/TableRegistersItemDTO.java new file mode 100644 index 0000000..ca645a3 --- /dev/null +++ b/src/main/java/com/consola/lis/dto/TableRegistersItemDTO.java @@ -0,0 +1,17 @@ +package com.consola.lis.dto; + + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TableRegistersItemDTO { + private int page; + private int size; + private Boolean lendable; +} diff --git a/src/main/java/com/consola/lis/dto/TableRegistersLoanDTO.java b/src/main/java/com/consola/lis/dto/TableRegistersLoanDTO.java new file mode 100644 index 0000000..436142c --- /dev/null +++ b/src/main/java/com/consola/lis/dto/TableRegistersLoanDTO.java @@ -0,0 +1,21 @@ +package com.consola.lis.dto; + +import com.consola.lis.model.enums.LoanState; +import com.consola.lis.util.deserializer.LoanStateDeserializer; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class TableRegistersLoanDTO { + private int page; + private int size; + @JsonDeserialize(using = LoanStateDeserializer.class) + private LoanState loanState; +} diff --git a/src/main/java/com/consola/lis/model/entity/Loan.java b/src/main/java/com/consola/lis/model/entity/Loan.java index aa80e96..daea64e 100644 --- a/src/main/java/com/consola/lis/model/entity/Loan.java +++ b/src/main/java/com/consola/lis/model/entity/Loan.java @@ -41,6 +41,8 @@ public class Loan { @Column(name = "lender_user") private String lenderUser; + private String item; + private String category; @JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone="GMT-5") @CreationTimestamp @Temporal(TemporalType.TIMESTAMP) diff --git a/src/main/java/com/consola/lis/model/enums/ItemState.java b/src/main/java/com/consola/lis/model/enums/ItemState.java index da7ce0f..3f75b22 100644 --- a/src/main/java/com/consola/lis/model/enums/ItemState.java +++ b/src/main/java/com/consola/lis/model/enums/ItemState.java @@ -27,6 +27,9 @@ public String toString() { } public static ItemState fromString(String text) { + if (text == null || text.trim().isEmpty()) { + return null; + } for (ItemState state : ItemState.values()) { if (state.lowerCase.equalsIgnoreCase(text)) { return state; @@ -35,6 +38,8 @@ public static ItemState fromString(String text) { throw new IllegalArgumentException("No enum constant with text " + text); } + + public static List getLowerCaseValuesList() { List lowerCaseValues = new ArrayList<>(); for (ItemState state : ItemState.values()) { diff --git a/src/main/java/com/consola/lis/model/enums/LoanState.java b/src/main/java/com/consola/lis/model/enums/LoanState.java index b0c7625..86328e5 100644 --- a/src/main/java/com/consola/lis/model/enums/LoanState.java +++ b/src/main/java/com/consola/lis/model/enums/LoanState.java @@ -23,6 +23,9 @@ public String toString() { } public static LoanState fromString(String text) { + if (text == null || text.trim().isEmpty()) { + return null; + } for (LoanState state : LoanState.values()) { if (state.lowerCase.equalsIgnoreCase(text)) { return state; diff --git a/src/main/java/com/consola/lis/model/enums/UserRole.java b/src/main/java/com/consola/lis/model/enums/UserRole.java index de48ab1..049dec6 100644 --- a/src/main/java/com/consola/lis/model/enums/UserRole.java +++ b/src/main/java/com/consola/lis/model/enums/UserRole.java @@ -13,6 +13,7 @@ public enum UserRole { AUXPROG ("Auxiliar de ProgramaciĆ³n"), AUXADMI("Auxiliar Administrativo"), STUDENT("Estudiante"), + GRADUATED("Egresado"), PROFESSOR("Profesor"); final String lowerCase; @@ -27,16 +28,17 @@ public String toString() { } public static UserRole fromString(String text) { - try { - for (UserRole role : UserRole.values()) { - if (role.lowerCase.equalsIgnoreCase(text)) { - return role; - } + if (text == null || text.isEmpty()) { + throw new IllegalArgumentException("Text cannot be null or empty"); + } + + for (UserRole role : UserRole.values()) { + if (role.lowerCase.equalsIgnoreCase(text)) { + return role; } - } catch (IllegalArgumentException e) { - return fromNumericString(text); } - throw new IllegalArgumentException("No enum constant with text " + text); + + return fromNumericString(text); } diff --git a/src/main/java/com/consola/lis/model/repository/InventoryItemRepository.java b/src/main/java/com/consola/lis/model/repository/InventoryItemRepository.java index c7ca8c0..da76d40 100644 --- a/src/main/java/com/consola/lis/model/repository/InventoryItemRepository.java +++ b/src/main/java/com/consola/lis/model/repository/InventoryItemRepository.java @@ -1,12 +1,11 @@ package com.consola.lis.model.repository; import com.consola.lis.model.entity.InventoryItem; - -import com.consola.lis.model.enums.ItemState; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @@ -16,5 +15,6 @@ public interface InventoryItemRepository extends JpaRepository findAllItems(Pageable pageable); - Page findByState(ItemState state, Pageable pageable); + @Query("SELECT p FROM InventoryItem p WHERE (:lendable IS NULL OR p.lendable = :lendable)") + Page findAllLoansByLendable(@Param("lendable") Boolean lendable, Pageable pageable); } \ No newline at end of file diff --git a/src/main/java/com/consola/lis/model/repository/LoanRepository.java b/src/main/java/com/consola/lis/model/repository/LoanRepository.java index dffcf66..3e1679a 100644 --- a/src/main/java/com/consola/lis/model/repository/LoanRepository.java +++ b/src/main/java/com/consola/lis/model/repository/LoanRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import java.util.List; @@ -14,4 +15,8 @@ public interface LoanRepository extends JpaRepository { @Query("SELECT p FROM Loan p ") Page findAllLoans(Pageable pageable); + + + @Query("SELECT p FROM Loan p WHERE (:loanState IS NULL OR p.loanState = :loanState) ORDER BY CASE WHEN p.loanState = 'ACTIVE' THEN 0 ELSE 1 END, p.loanId ASC") + Page findAllLoansByState(@Param("loanState") LoanState loanState, Pageable pageable); } diff --git a/src/main/java/com/consola/lis/service/InventoryItemService.java b/src/main/java/com/consola/lis/service/InventoryItemService.java index d35a492..a409fb1 100644 --- a/src/main/java/com/consola/lis/service/InventoryItemService.java +++ b/src/main/java/com/consola/lis/service/InventoryItemService.java @@ -140,9 +140,8 @@ public boolean existItem(String itemId) { } - public Map getAllItemsMapped(Pageable pageable) { - Page inventoryItemsPage = getAllInventoryItems(pageable); - + public Map getAllItemsMapped(Boolean lendable, Pageable pageable) { + Page inventoryItemsPage = getAllInventoryItems(lendable, pageable); Map result = new HashMap<>(); result.put("totalElements", inventoryItemsPage.getTotalElements()); result.put("totalPages", inventoryItemsPage.getTotalPages()); @@ -158,8 +157,8 @@ private List mapToItemInfoList(List items) { .toList(); } - private Page getAllInventoryItems(Pageable pageable) { - return inventoryItemRepository.findAllItems(pageable); + private Page getAllInventoryItems(Boolean lendable,Pageable pageable) { + return inventoryItemRepository.findAllLoansByLendable(lendable,pageable); } public List getHeaders() { List header = new ArrayList<>(); diff --git a/src/main/java/com/consola/lis/service/LoanService.java b/src/main/java/com/consola/lis/service/LoanService.java index 37b2508..2d13eff 100644 --- a/src/main/java/com/consola/lis/service/LoanService.java +++ b/src/main/java/com/consola/lis/service/LoanService.java @@ -7,6 +7,7 @@ import com.consola.lis.model.enums.LoanState; import com.consola.lis.model.enums.LoanType; import com.consola.lis.model.enums.ItemState; +import com.consola.lis.model.repository.InventoryItemRepository; import com.consola.lis.model.repository.LoanRepository; import com.consola.lis.util.exception.AlreadyExistsException; import com.consola.lis.util.exception.IllegalParameterInRequest; @@ -27,6 +28,7 @@ public class LoanService { private final LoanRepository loanRepository; private final InventoryItemService inventoryItemService; + private final InventoryItemRepository inventoryItemRepository; public Loan createLoan(LoanDTO loanRequest) { validateLoanRequest(loanRequest); @@ -68,12 +70,16 @@ private Loan buildLoanFromRequest(LoanDTO loanRequest) { if (loanRequest.getLoanType() == null) { loanRequest.setLoanType(LoanType.GENERAL); } + Optional item = inventoryItemRepository.findById(loanRequest.getItemId()); + return Loan.builder() .itemId(loanRequest.getItemId()) .loanType(LoanType.valueOf(loanRequest.getLoanType().name())) .borrowerUser(loanRequest.getBorrowerUser()) .lenderUser(loanRequest.getLenderUser()) + .item(loanRequest.getItemId()) + .category(item.get().getCategory().getCategoryName()) .quantity(loanRequest.getQuantity()) .loanState(LoanState.ACTIVE) .observation(loanRequest.getObservation()) @@ -104,8 +110,10 @@ public List getAllLoans() { - public Map getAllLoansMapper(Pageable pageable) { - Page loanPage = getAllLoans(pageable); + + public Map getAllLoansMapper(LoanState loanState,Pageable pageable) { + + Page loanPage = getAllLoans(loanState, pageable); Map result = new HashMap<>(); result.put("totalElements", loanPage.getTotalElements()); @@ -117,12 +125,15 @@ public Map getAllLoansMapper(Pageable pageable) { private List mapToLoanInfoList(List loans) { return loans.stream() - .map(loan -> LoanMapper.mapLoanToDTO(loan, inventoryItemService.findInventoryItem(loan.getItemId()))) + .map(loan -> { + InventoryItem item = loan.getItemId() != null ? inventoryItemService.findInventoryItem(loan.getItemId()) : null; + return LoanMapper.mapLoanToDTO(loan, item); + }) .toList(); } - private Page getAllLoans(Pageable pageable) { - return loanRepository.findAllLoans(pageable); + private Page getAllLoans(LoanState loanState,Pageable pageable) { + return loanRepository.findAllLoansByState(loanState, pageable); } public List getHeaders() { @@ -139,7 +150,7 @@ public List getHeaders() { public void updateReturnLoanState (int loanId, LoanState state) { Loan existingLoan = loanRepository.findById(loanId) - .orElseThrow(() -> new NotExistingException("409", HttpStatus.CONFLICT, "Item not exists into inventary")); + .orElseThrow(() -> new NotExistingException("409", HttpStatus.CONFLICT, "Item not exists into inventory")); existingLoan.setLoanState(state); loanRepository.save(existingLoan); diff --git a/src/main/java/com/consola/lis/service/RegisterService.java b/src/main/java/com/consola/lis/service/RegisterService.java index ec37cc6..608ff29 100644 --- a/src/main/java/com/consola/lis/service/RegisterService.java +++ b/src/main/java/com/consola/lis/service/RegisterService.java @@ -7,10 +7,15 @@ import com.consola.lis.model.repository.UserHelloLisRepository; import com.consola.lis.model.repository.UserLisRepository; import com.consola.lis.util.exception.AlreadyExistsException; +import com.consola.lis.util.exception.NotExistingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.*; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; @Service @RequiredArgsConstructor @@ -19,13 +24,35 @@ public class RegisterService { private final UserLisRepository userLisRepository; private final UserHelloLisRepository userHelloLisRepository; private final PasswordEncoder passwordEncoder; + private final RestTemplate restTemplate; + + + @Value("${oAuthTokenAsoneMicroservice}") + private String oAuthTokenAsone; + + @Value("${asoneMicroservice}") + private String asoneMicroservice; + + @Value("${asoneTypeConnection}") + private String asoneTypeConnection; + + @Value("${asoneMicroservice}") + private String endpointAsone; + + public UserLis registerUserLis(UserLisDTO registerUserLisDTO) { - if(userLisRepository.existsById(registerUserLisDTO.getIdUser()) || userLisRepository.existsByUsername(registerUserLisDTO.getUsername())){ + boolean userExists = userLisRepository.existsById(registerUserLisDTO.getIdUser()) + || userLisRepository.existsByUsername(registerUserLisDTO.getUsername()); + if (userExists) { throw new AlreadyExistsException("409", HttpStatus.CONFLICT, "User already exists"); } + if (registerUserLisDTO.getRole() == UserRole.STUDENT && !getBasicAcademicInfo(registerUserLisDTO.getIdUser())) { + throw new NotExistingException("403", HttpStatus.FORBIDDEN, "The student does not belong to systems engineering"); + } + UserLis userLis = UserLis.builder() .username(registerUserLisDTO.getUsername()) .role(registerUserLisDTO.getRole()) @@ -36,6 +63,7 @@ public UserLis registerUserLis(UserLisDTO registerUserLisDTO) { return userLisRepository.save(userLis); } + public void registerUserHelloLis(UserHelloLisDTO registerUserHelloLisDTO) { if(userLisRepository.existsById(registerUserHelloLisDTO.getIdUser())){ throw new AlreadyExistsException("409", HttpStatus.CONFLICT, "User already exists"); @@ -56,6 +84,37 @@ public void registerUserHelloLis(UserHelloLisDTO registerUserHelloLisDTO) { userHelloLisRepository.save(userHelloLis); } + private boolean getBasicAcademicInfo(String identificationNumber) { + try{ + String url = endpointAsone + identificationNumber; + + HttpHeaders headers = new HttpHeaders(); + headers.set("OAuth_Token", oAuthTokenAsone); + headers.set("Tipo_Conexion", asoneTypeConnection); + + HttpEntity entity = new HttpEntity<>(headers); + + ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); + if (response == null) { + return false; + } + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode root = objectMapper.readTree(response.getBody()); + JsonNode objects = root.path("object"); + + if (objects.isArray() && objects.size() > 0) { + JsonNode lastObject = objects.get(objects.size() - 1); + int program = lastObject.path("programa").asInt(); + String stateProgram = lastObject.path("estadoAlumnoPrograma").asText(); + return program == 504 && "ACTIVO".equals(stateProgram); + } + + return false; + + }catch(Exception e){ + return false; + } + } } diff --git a/src/main/java/com/consola/lis/service/UserService.java b/src/main/java/com/consola/lis/service/UserService.java index 9c6ad6f..12b6c53 100644 --- a/src/main/java/com/consola/lis/service/UserService.java +++ b/src/main/java/com/consola/lis/service/UserService.java @@ -9,6 +9,7 @@ import com.consola.lis.model.enums.UserRole; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.*; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -24,13 +25,15 @@ public class UserService { public final JwtService jwtService; + @Value("${ldap}") + private String endpointLdap; + public UserLis getUser(String username) { return userLisRepository.findByUsername(username).orElseThrow(()-> new NotExistingException("404", HttpStatus.NOT_FOUND, "the category whit id " + username + " not exist ")); } public AuthResponseDTO changeUserRole(String username, UserRole newRole) { - System.out.println("holi"+newRole.name()); UserLis user = userLisRepository.findByUsername(username).orElseThrow(()-> new NotExistingException("404", HttpStatus.NOT_FOUND, "the category whit id " + username + " not exist ")); user.setRole(newRole); @@ -63,11 +66,12 @@ public Boolean checkExistUser(String username) { if (existUser(username)) { return true; } - ResponseEntity response = this.restTemplate.getForEntity("https://sistemas.udea.edu.co/api/ldap/login/{username}", UserLisDTO.class, username); + ResponseEntity response = this.restTemplate.getForEntity(endpointLdap +"{username}", UserLisDTO.class, username); UserLisDTO userLdap = response.getBody(); if (userLdap == null) { return false; } else { + UserLis userLis = UserLis.builder() .idUser(userLdap.getIdUser()) .username(userLdap.getUsername()) @@ -83,4 +87,6 @@ public Boolean checkExistUser(String username) { return false; } } + + } \ No newline at end of file diff --git a/src/main/java/com/consola/lis/util/constans/EndpointConstant.java b/src/main/java/com/consola/lis/util/constans/EndpointConstant.java index f1765b4..0b50c54 100644 --- a/src/main/java/com/consola/lis/util/constans/EndpointConstant.java +++ b/src/main/java/com/consola/lis/util/constans/EndpointConstant.java @@ -21,7 +21,7 @@ public class EndpointConstant { //Endpoints Inventory Item public static final String ENDPOINT_INVENTORY = "/api/console-lis/user/inventory/item"; - public static final String ENDPOINT_INVENTORY_TABLE = "/tableRegisters"; + public static final String ENDPOINT_INVENTORY_TABLE = "/table"; public static final String ENDPOINT_DELETE_ITEM="/delete/{itemId}"; public static final String ENDPOINT_EDIT_ITEM_STATE="/item/state/{itemId}"; public static final String ENDPOINT_ONE_ITEM = "/{itemId}"; @@ -42,7 +42,7 @@ public class EndpointConstant { public static final String ENDPOINT_GET_ONE_LOAN = "/{loanId}"; - public static final String ENDPOINT_ALL_LOANS_TABLE = "/tableRegisters"; + public static final String ENDPOINT_ALL_LOANS_TABLE = "/table"; public static final String ENDPOINT_HEADERS_LOAN = "/tableHeaders/"; //Return Loan @@ -58,6 +58,6 @@ public class EndpointConstant { public static final String ENDPOINT_SELECT_LIST_ENUM_LOAN_STATE = "/loanState"; public static final String ENDPOINT_SELECT_LIST_ENUM_ITEM_STATE = "/itemState"; - + public static final String ENDPOINT_LDAP="https://sistemas.udea.edu.co/api/ldap/login/"; } diff --git a/src/main/java/com/consola/lis/util/deserializer/LoanStateDeserializer.java b/src/main/java/com/consola/lis/util/deserializer/LoanStateDeserializer.java index e6bd6c6..b7545f4 100644 --- a/src/main/java/com/consola/lis/util/deserializer/LoanStateDeserializer.java +++ b/src/main/java/com/consola/lis/util/deserializer/LoanStateDeserializer.java @@ -12,6 +12,10 @@ public class LoanStateDeserializer extends JsonDeserializer { @Override public LoanState deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { String loanStateLowerCase = jsonParser.getText(); + if (loanStateLowerCase == null || loanStateLowerCase.trim().isEmpty()) { + return null; + } return LoanState.fromString(loanStateLowerCase); + } } diff --git a/src/main/java/com/consola/lis/util/mapper/LoanMapper.java b/src/main/java/com/consola/lis/util/mapper/LoanMapper.java index dabeade..7436a7d 100644 --- a/src/main/java/com/consola/lis/util/mapper/LoanMapper.java +++ b/src/main/java/com/consola/lis/util/mapper/LoanMapper.java @@ -13,14 +13,14 @@ private LoanMapper(){ public static LoanInfoDTO mapLoanToDTO(Loan loan, InventoryItem item){ - return LoanInfoDTO.builder() .loanId(loan.getLoanId()) .loanType(loan.getLoanType().toString()) .loanState(loan.getLoanState().toString()) .borrowerUser(loan.getBorrowerUser()) .loanDate(loan.getLoanDate()) - .loanName(item.getCategory().getCategoryName()) + .loanName(loan.getCategory()) + .loanItemId(loan.getItem()) .returnDate(loan.getReturnDate()) .loanDate(loan.getLoanDate()) .build(); diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index aef12da..8d0cc2e 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -2,6 +2,8 @@ server.port=8092 spring.application.name=consola-lis-api jwt.secret=Ax4skyFJwtRXE8ZDP5qCZLTKxDb/Ian18VYf9/CHiNw= + + spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.ldap.urls=rls=https://sistemas.udea.edu.co/api/ldap/login/{username} diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 70dc2f2..39957e2 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -2,6 +2,11 @@ server.port=${SPRING_DOCKER_PORT} spring.application.name=consola-lis-api jwt.secret=${JWT_SECRET} +oAuthTokenAsoneMicroservice=${OAUTH_TOKEN} +asoneMicroservice=${URL_ASONE_MICROSERVICE} +asoneTypeConnection=${TYPE_CONNECTION} + +ldap=${URL_LDAP_MICROSERVICE} spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.ldap.urls=rls=https://sistemas.udea.edu.co/api/ldap/login/{username}