Skip to content

Commit f48b0e9

Browse files
committed
wip: 交代メソッドの抽出
1 parent c24781c commit f48b0e9

3 files changed

Lines changed: 42 additions & 39 deletions

File tree

src/main/java/jp/co/esm/miffy/Controller/Asf4MemberController.java renamed to src/main/java/jp/co/esm/miffy/Controller/HookController.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package jp.co.esm.miffy.Controller;
22

3-
import jp.co.esm.miffy.component.HookComponent;
43
import jp.co.esm.miffy.entity.Asf4Member;
54
import lombok.RequiredArgsConstructor;
65
import org.springframework.stereotype.Controller;
@@ -11,9 +10,9 @@
1110

1211
@Controller
1312
@RequiredArgsConstructor
14-
public class Asf4MemberController {
13+
public class HookController {
1514
private final jp.co.esm.miffy.service.HookService hookService;
16-
private final HookComponent hookComponent;
15+
//private final HookComponent hookComponent;
1716

1817
@GetMapping("asf4members")
1918
public String index(Model model) {

src/main/java/jp/co/esm/miffy/Controller/MemberInfoController.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public String index(Model model, Asf4Member asf4Member, Check check) {
5959

6060
@RequestMapping("/skip")
6161
public String index(Model model) {
62+
hookService.setNextCleaner();
6263
hookComponent.postToHook();
6364
return "redirect:/asf4members";
6465
}

src/main/java/jp/co/esm/miffy/service/HookService.java

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import jp.co.esm.miffy.entity.Asf4Member;
66
import jp.co.esm.miffy.repository.Asf4MemberRepository;
77
import lombok.RequiredArgsConstructor;
8+
import org.springframework.scheduling.annotation.Scheduled;
89
import org.springframework.stereotype.Service;
910

1011
import java.util.List;
@@ -15,6 +16,9 @@
1516
@RequiredArgsConstructor
1617
public class HookService {
1718
public final Asf4MemberRepository asf4MemberRepository;
19+
// private final HookComponent hookComponent;
20+
21+
private String notificationCleanerIsUnknown; // 前回の掃除当番が行方不明の場合のエラーメッセージ(毎回リセット)
1822

1923
/**
2024
* テーブルのデータ一覧を返す。
@@ -36,28 +40,40 @@ private Asf4Member getLastCleaner() {
3640
}
3741

3842
/**
39-
* 今日の掃除当番の人を特定する。
40-
*
41-
* @return 掃除当番をOptionalオブジェクトで返す。
43+
* 今日の掃除当番に交代する。
4244
*/
43-
private Asf4Member getCleaner() throws NoSuchElementException {
45+
@Scheduled(cron = "0 0 9 * * 1-5", zone = "Asia/Tokyo")
46+
public void setNextCleaner() throws NoSuchElementException {
4447
Asf4Member lastCleaner = getLastCleaner();
45-
int cleanerId = lastCleaner.getId();
46-
Optional<Asf4Member> cleanerOptional = asf4MemberRepository.findTopBySkipFalseAndIdGreaterThanOrderByIdAsc(cleanerId);
47-
if (cleanerOptional.isEmpty()) {
48-
cleanerOptional = asf4MemberRepository.findTopBySkipFalseOrderByIdAsc();
49-
}
5048
Asf4Member cleaner;
51-
if (cleanerOptional.isPresent()) {
52-
cleaner = cleanerOptional.get();
53-
cleaner.setCleaner(true);
54-
asf4MemberRepository.saveAndFlush(cleaner);
55-
lastCleaner.setCleaner(false);
56-
asf4MemberRepository.saveAndFlush(lastCleaner);
57-
} else {
58-
cleaner = null;
49+
try {
50+
int cleanerId = lastCleaner.getId();
51+
Optional<Asf4Member> cleanerOptional = asf4MemberRepository.findTopBySkipFalseAndIdGreaterThanOrderByIdAsc(cleanerId);
52+
if (cleanerOptional.isEmpty()) {
53+
cleanerOptional = asf4MemberRepository.findTopBySkipFalseOrderByIdAsc();
54+
}
55+
if (cleanerOptional.isPresent()) {
56+
cleaner = cleanerOptional.get();
57+
cleaner.setCleaner(true);
58+
asf4MemberRepository.saveAndFlush(cleaner);
59+
lastCleaner.setCleaner(false);
60+
asf4MemberRepository.saveAndFlush(lastCleaner);
61+
}
62+
} catch(NoSuchElementException e) {
63+
notificationCleanerIsUnknown = makeErrorMessage(e);
64+
// hookComponent.postToHook(); // ここで通知したい
65+
System.out.println(notificationCleanerIsUnknown); // 通知の代わりの出力
66+
notificationCleanerIsUnknown = null;
5967
}
60-
return cleaner;
68+
}
69+
70+
String makeErrorMessage(NoSuchElementException e) {
71+
e.printStackTrace();
72+
StringBuilder errorMessage = new StringBuilder();
73+
errorMessage.append("all ");
74+
errorMessage.append(e.getMessage());
75+
errorMessage.append("前回掃除した人は誰?(・x・)");
76+
return errorMessage.toString();
6177
}
6278

6379
/**
@@ -121,28 +137,15 @@ public String makeRequest(AJD date) {
121137
if (isHoliday(date)) {
122138
return null;
123139
}
124-
String mainMessage = makeMainMessage();
125-
// Asf4Member cleaner;
126-
// try {
127-
// cleaner = getCleaner();
128-
// if (cleaner != null) {
129-
// postIdobataId = cleaner.getIdobataId();
130-
// mainMessage = "今日の掃除当番です";
131-
// } else {
132-
// postIdobataId = "here";
133-
// mainMessage = "今日は誰もオフィスにいないみたい(・x・)";
134-
// }
135-
// } catch (NoSuchElementException e) {
136-
// e.printStackTrace();
137-
// postIdobataId = "all ";
138-
// errorMessage = e.getMessage();
139-
// mainMessage = "前回掃除した人は誰?(・x・)";
140-
// }
141140
StringBuilder request = new StringBuilder();
142141
request.append("{");
143142
request.append("\"source\":\"");
144143
request.append("@");
145-
request.append(mainMessage);
144+
if (notificationCleanerIsUnknown == null) {
145+
request.append(makeMainMessage());
146+
} else {
147+
request.append(notificationCleanerIsUnknown);
148+
}
146149
request.append("\"");
147150
request.append("}");
148151
return request.toString();

0 commit comments

Comments
 (0)