feat(user): implementado changeRole en el repositorio, servicio y controlador de UpdateUser

parent 40c6ed73
package com.example.apprecetas.user.application;
import com.example.apprecetas.user.domain.entity.Role;
import com.example.apprecetas.user.domain.entity.User;
public interface UpdateUserUseCase {
......@@ -11,4 +12,7 @@ public interface UpdateUserUseCase {
void deactivateById(String id);
void activateById(String id);
void changeRole(String id, Role role);
}
package com.example.apprecetas.user.application.impl;
import com.example.apprecetas.user.application.UpdateUserUseCase;
import com.example.apprecetas.user.domain.entity.Role;
import com.example.apprecetas.user.domain.entity.User;
import com.example.apprecetas.user.domain.repository.UpdateUserRepository;
import com.example.apprecetas.user.infrastructure.mapper.UserMapper;
......@@ -38,4 +39,9 @@ public class UpdateUserUseCaseImpl implements UpdateUserUseCase {
public void activateById(String id) {
updateUserRepository.activateById(id);
}
@Override
public void changeRole(String id, Role role) {
updateUserRepository.changeRole(id, role);
}
}
package com.example.apprecetas.user.domain.repository;
import com.example.apprecetas.user.domain.entity.Role;
import com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument;
public interface UpdateUserRepository {
......@@ -11,4 +12,6 @@ public interface UpdateUserRepository {
void deactivateById(String id);
void activateById(String id);
void changeRole(String id, Role role);
}
......@@ -2,6 +2,7 @@ package com.example.apprecetas.user.infrastructure.controller;
import com.example.apprecetas.exception.UnprocessableEntityException;
import com.example.apprecetas.user.application.UpdateUserUseCase;
import com.example.apprecetas.user.domain.entity.Role;
import com.example.apprecetas.user.infrastructure.controller.dto.input.UserInputDto;
import com.example.apprecetas.user.infrastructure.controller.dto.input.UserUpdateInputDto;
import com.example.apprecetas.user.infrastructure.controller.dto.output.UserOutputDto;
......@@ -58,7 +59,6 @@ public class UpdateUserController {
@PatchMapping("/{id}/deactivate")
public ResponseEntity<String> deactivate(@PathVariable String id) {
// Añadir autorización
service.deactivateById(id);
return ResponseEntity.ok().body("Usuario con id " + id + " desactivado");
}
......@@ -69,4 +69,10 @@ public class UpdateUserController {
return ResponseEntity.ok().body("Usuario con id " + id + " activado");
}
@PatchMapping("/{id}/role")
public ResponseEntity<String> changeRole(@PathVariable String id, @RequestBody Role role) {
service.changeRole(id, role);
return ResponseEntity.ok().body("Usuario con id " + id + " con rol: " + role);
}
}
package com.example.apprecetas.user.infrastructure.repository.impl;
import com.example.apprecetas.exception.EntityNotFoundException;
import com.example.apprecetas.user.domain.entity.Role;
import com.example.apprecetas.user.domain.repository.UpdateUserRepository;
import com.example.apprecetas.user.infrastructure.repository.mongodb.UserDocument;
import com.example.apprecetas.user.infrastructure.repository.mongodb.UserRepository;
......@@ -60,4 +61,13 @@ public class UpdateUserRepositoryImpl implements UpdateUserRepository {
userDocument.setDeletedAt(null);
userRepository.save(userDocument);
}
@Override
public void changeRole(String id, Role role) {
UserDocument userDocument = userRepository.findById(id)
.orElseThrow(() -> new EntityNotFoundException("Usuario con id " + id + " no encontrado"));
userDocument.setRole(role);
userRepository.save(userDocument);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment