package com.iconplus.smartproc.service.roles; import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.model.entity.Roles; import com.iconplus.smartproc.model.request.RolesRequest; import com.iconplus.smartproc.model.response.RolesResponse; import com.iconplus.smartproc.repository.RolesRepository; import com.iconplus.smartproc.util.Constants; import org.springframework.stereotype.Service; import java.util.Optional; @Service public class PostCreateRoleService implements BaseService { private final RolesRepository rolesRepository; public PostCreateRoleService(RolesRepository rolesRepository) { this.rolesRepository = rolesRepository; } @Override public RolesResponse execute(RolesRequest input) { Optional role = rolesRepository.findByRoleAndIsDeleteFalse(input.getRole()); if (role.isPresent()) { throw new BusinessException(Constants.ERR_CODE_10006, Constants.ERR_TTL_10006, String.format(Constants.ERR_MSG_10006, input.getRole())); } Roles roles = Roles.builder() .role(input.getRole()) .keterangan(input.getKeterangan()) .isActive(input.getIsActive()) .isDelete(false) .build(); var result = rolesRepository.save(roles); return RolesResponse.builder() .id(result.getId()) .build(); } }