Skip to content

Commit

Permalink
Merge pull request #61 from soolung/feat/#56-close
Browse files Browse the repository at this point in the history
ADD :: 신청종료 (#56)
  • Loading branch information
Yunyeong-Ko committed Mar 18, 2023
2 parents 0a8f50e + addf838 commit d1bcb8c
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,10 @@ public void delete() {
this.state = State.DELETED;
}

public void close() {
this.state = State.CLOSED;
}

public void updateInformation(String title, String description, LocalDate startDate, LocalDate endDate, String emoji, Boolean allowsDuplication, Boolean allowsUpdatingReply, State state) {
this.title = title;
this.description = description;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public class ApplicationController {
private final QueryApplicationResultService queryApplicationResultService;
private final UpdateApplicationService updateApplicationService;
private final DeleteApplicationService deleteApplicationService;
private final CloseApplicationService closeApplicationService;

@PostMapping
public void createApplication(@RequestBody @Valid ApplicationRequest request) {
Expand Down Expand Up @@ -81,6 +82,11 @@ public void updateApplication(
updateApplicationService.execute(id, request);
}

@PutMapping("/{id}/close")
public void closeApplication(@PathVariable Long id) {
closeApplicationService.execute(id);
}

@DeleteMapping("/{id}")
public void deleteApplication(@PathVariable Long id) {
deleteApplicationService.execute(id);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.soogung.simblue.domain.application.service;

import com.soogung.simblue.domain.application.domain.Application;
import com.soogung.simblue.domain.application.domain.repository.AnswerRepository;
import com.soogung.simblue.domain.application.domain.repository.ApplicationRepository;
import com.soogung.simblue.domain.application.domain.repository.OwnerRepository;
import com.soogung.simblue.domain.application.domain.repository.QuestionRepository;
import com.soogung.simblue.domain.application.facade.ApplicationFacade;
import com.soogung.simblue.domain.application.presentation.dto.request.ApplicationRequest;
import com.soogung.simblue.domain.user.domain.Teacher;
import com.soogung.simblue.domain.user.facade.UserFacade;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;

@Service
@RequiredArgsConstructor
public class CloseApplicationService {

private final UserFacade userFacade;
private final ApplicationFacade applicationFacade;
private final OwnerRepository ownerRepository;

@Transactional
public void execute(Long id) {
Teacher teacher = userFacade.getCurrentTeacher();
Application application = applicationFacade.getSimpleApplication(id);
application.validateStatus();
application.validatePermission(ownerRepository, teacher.getId());

application.close();
}
}

0 comments on commit d1bcb8c

Please sign in to comment.