diff --git a/src/main/java/com/mindway/server/v2/domain/rec/service/WriteRecService.java b/src/main/java/com/mindway/server/v2/domain/rec/service/WriteRecService.java new file mode 100644 index 0000000..0536aa3 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rec/service/WriteRecService.java @@ -0,0 +1,8 @@ +package com.mindway.server.v2.domain.rec.service; + +import com.mindway.server.v2.domain.rec.entity.Type; +import com.mindway.server.v2.domain.rec.presentation.dto.reqest.WriteRecRequest; + +public interface WriteRecService { + void execute(WriteRecRequest writeRecRequest, Type type); +} diff --git a/src/main/java/com/mindway/server/v2/domain/rec/service/impl/WriteRecServiceImpl.java b/src/main/java/com/mindway/server/v2/domain/rec/service/impl/WriteRecServiceImpl.java new file mode 100644 index 0000000..e82dbe8 --- /dev/null +++ b/src/main/java/com/mindway/server/v2/domain/rec/service/impl/WriteRecServiceImpl.java @@ -0,0 +1,33 @@ +package com.mindway.server.v2.domain.rec.service.impl; + +import com.mindway.server.v2.domain.order.exception.NotAccessStudentException; +import com.mindway.server.v2.domain.rec.entity.Rec; +import com.mindway.server.v2.domain.rec.entity.Type; +import com.mindway.server.v2.domain.rec.presentation.dto.reqest.WriteRecRequest; +import com.mindway.server.v2.domain.rec.repository.RecRepository; +import com.mindway.server.v2.domain.rec.service.WriteRecService; +import com.mindway.server.v2.domain.rec.util.RecConverter; +import com.mindway.server.v2.domain.user.entity.Authority; +import com.mindway.server.v2.domain.user.entity.User; +import com.mindway.server.v2.domain.user.util.UserUtil; +import com.mindway.server.v2.global.annotation.ServiceWithTransaction; +import lombok.RequiredArgsConstructor; + +@ServiceWithTransaction +@RequiredArgsConstructor +public class WriteRecServiceImpl implements WriteRecService { + + private final RecRepository recRepository; + private final RecConverter recConverter; + private final UserUtil userUtil; + + public void execute(WriteRecRequest writeRecRequest, Type type) { + User user = userUtil.getCurrentUser(); + + if (user.getAuthority() == Authority.ROLE_STUDENT) { + throw new NotAccessStudentException(); + } + + recRepository.save(recConverter.toEntity(writeRecRequest, type)); + } +}