Fix: errors in the YAML files. Add: DTO for making pre-user requests in huertos.

This commit is contained in:
Jose
2026-01-22 13:24:52 +01:00
parent 01b7425237
commit 2523b22043
6 changed files with 49 additions and 7 deletions

View File

@@ -43,10 +43,10 @@ public class SecurityConfig {
.authorizeHttpRequests(auth -> auth .authorizeHttpRequests(auth -> auth
// PUBLICAS // PUBLICAS
.requestMatchers("/login").permitAll() .requestMatchers("/login").permitAll()
.requestMatchers("/announces/**").permitAll() .requestMatchers("/announces").permitAll()
.requestMatchers("/huertos/members/waitlist").permitAll() .requestMatchers("/requests").permitAll()
.requestMatchers("/huertos/members/waitlist/limited").permitAll() .requestMatchers("/huertos/users/waitlist/limited").permitAll()
.requestMatchers("/huertos/members/latest-number").permitAll() .requestMatchers("/huertos/users/latest-number").permitAll()
// PRIVADAS // PRIVADAS
.anyRequest().authenticated() .anyRequest().authenticated()
); );

View File

@@ -1,13 +1,19 @@
package net.miarma.backend.huertos.controller; package net.miarma.backend.huertos.controller;
import jakarta.transaction.Transactional;
import net.miarma.backend.huertos.dto.CreateWaitlistDto;
import net.miarma.backend.huertos.dto.PreUserDto;
import net.miarma.backend.huertos.dto.RequestCountDto; import net.miarma.backend.huertos.dto.RequestCountDto;
import net.miarma.backend.huertos.dto.RequestDto; import net.miarma.backend.huertos.dto.RequestDto;
import net.miarma.backend.huertos.dto.view.VRequestsWithPreUsersDto; import net.miarma.backend.huertos.dto.view.VRequestsWithPreUsersDto;
import net.miarma.backend.huertos.mapper.PreUserMapper;
import net.miarma.backend.huertos.mapper.RequestMapper; import net.miarma.backend.huertos.mapper.RequestMapper;
import net.miarma.backend.huertos.mapper.view.VIncomesWithFullNamesMapper; import net.miarma.backend.huertos.mapper.view.VIncomesWithFullNamesMapper;
import net.miarma.backend.huertos.mapper.view.VRequestsWithPreUsersMapper; import net.miarma.backend.huertos.mapper.view.VRequestsWithPreUsersMapper;
import net.miarma.backend.huertos.model.PreUser;
import net.miarma.backend.huertos.model.Request; import net.miarma.backend.huertos.model.Request;
import net.miarma.backend.huertos.model.view.VRequestsWithPreUsers; import net.miarma.backend.huertos.model.view.VRequestsWithPreUsers;
import net.miarma.backend.huertos.service.PreUserService;
import net.miarma.backend.huertos.service.RequestService; import net.miarma.backend.huertos.service.RequestService;
import net.miarma.backend.huertos.service.view.VRequestsWithPreUsersService; import net.miarma.backend.huertos.service.view.VRequestsWithPreUsersService;
import net.miarma.backlib.security.JwtService; import net.miarma.backlib.security.JwtService;
@@ -26,11 +32,16 @@ import java.util.stream.Collectors;
public class RequestController { public class RequestController {
private final RequestService requestService; private final RequestService requestService;
private final PreUserService preUserService;
private final VRequestsWithPreUsersService vRequestsWithPreUsersService; private final VRequestsWithPreUsersService vRequestsWithPreUsersService;
private final JwtService jwtService; private final JwtService jwtService;
public RequestController(RequestService requestService, VRequestsWithPreUsersService vRequestsWithPreUsersService, JwtService jwtService) { public RequestController(RequestService requestService,
PreUserService preUserService,
VRequestsWithPreUsersService vRequestsWithPreUsersService,
JwtService jwtService) {
this.requestService = requestService; this.requestService = requestService;
this.preUserService = preUserService;
this.vRequestsWithPreUsersService = vRequestsWithPreUsersService; this.vRequestsWithPreUsersService = vRequestsWithPreUsersService;
this.jwtService = jwtService; this.jwtService = jwtService;
} }
@@ -108,6 +119,14 @@ public class RequestController {
return ResponseEntity.ok(RequestMapper.toResponse(request)); return ResponseEntity.ok(RequestMapper.toResponse(request));
} }
@PostMapping
@Transactional
public ResponseEntity<RequestDto.Response> create(
@RequestBody CreateWaitlistDto body) {
RequestDto.Response response = requestService.create(body.request(), body.preUser());
return ResponseEntity.ok(response);
}
@PutMapping("/{request_id}") @PutMapping("/{request_id}")
@PreAuthorize("hasAnyRole('HUERTOS_ROLE_ADMIN', 'HUERTOS_ROLE_DEV')") @PreAuthorize("hasAnyRole('HUERTOS_ROLE_ADMIN', 'HUERTOS_ROLE_DEV')")
public ResponseEntity<RequestDto.Response> update( public ResponseEntity<RequestDto.Response> update(

View File

@@ -0,0 +1,7 @@
package net.miarma.backend.huertos.dto;
public record CreateWaitlistDto(
RequestDto.Request request,
PreUserDto.Request preUser
) {
}

View File

@@ -4,8 +4,13 @@ import java.time.Instant;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import net.miarma.backend.huertos.dto.PreUserDto;
import net.miarma.backend.huertos.dto.RequestDto; import net.miarma.backend.huertos.dto.RequestDto;
import net.miarma.backend.huertos.mapper.PreUserMapper;
import net.miarma.backend.huertos.mapper.RequestMapper;
import net.miarma.backend.huertos.model.HuertosUserMetadata; import net.miarma.backend.huertos.model.HuertosUserMetadata;
import net.miarma.backend.huertos.model.PreUser;
import net.miarma.backend.huertos.repository.PreUserRepository;
import net.miarma.backlib.exception.BadRequestException; import net.miarma.backlib.exception.BadRequestException;
import net.miarma.backlib.exception.NotFoundException; import net.miarma.backlib.exception.NotFoundException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -20,11 +25,14 @@ import net.miarma.backlib.util.UuidUtil;
public class RequestService { public class RequestService {
private final RequestRepository requestRepository; private final RequestRepository requestRepository;
private final PreUserRepository preUserRepository;
private final HuertosUserMetadataService metadataService; private final HuertosUserMetadataService metadataService;
public RequestService(RequestRepository requestRepository, public RequestService(RequestRepository requestRepository,
PreUserRepository preUserRepository,
HuertosUserMetadataService metadataSertice) { HuertosUserMetadataService metadataSertice) {
this.requestRepository = requestRepository; this.requestRepository = requestRepository;
this.preUserRepository = preUserRepository;
this.metadataService = metadataSertice; this.metadataService = metadataSertice;
} }
@@ -73,6 +81,14 @@ public class RequestService {
return requestRepository.save(request); return requestRepository.save(request);
} }
@Transactional
public RequestDto.Response create(RequestDto.Request requestDto,
PreUserDto.Request preUserDto) {
PreUser preUser = preUserRepository.save(PreUserMapper.toEntity(preUserDto));
Request request = requestRepository.save(RequestMapper.toEntity(requestDto));
return RequestMapper.toResponse(request);
}
public Request update(UUID requestId, RequestDto.Request dto) { public Request update(UUID requestId, RequestDto.Request dto) {
byte[] idBytes = UuidUtil.uuidToBin(requestId); byte[] idBytes = UuidUtil.uuidToBin(requestId);

View File

@@ -20,7 +20,7 @@ core:
huertos: huertos:
user: SYSTEM user: SYSTEM
password: ${HUERTOS_SYSTEM_PASSWORD} password: ${HUERTOS_PASS}
mail: mail:
smtp: smtp:

View File

@@ -19,7 +19,7 @@ core:
huertos: huertos:
user: SYSTEM user: SYSTEM
password: ${HUERTOS_SYSTEM_PASSWORD} password: ${HUERTOS_PASS}
mail: mail:
smtp: smtp: