ScheduledPublishingTaskController.java
3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// platform/controller/ScheduledPublishingTaskController.java
package com.aigeo.platform.controller;
import com.aigeo.platform.entity.ScheduledPublishingTask;
import com.aigeo.platform.entity.PublishingTaskStatus;
import com.aigeo.platform.service.ScheduledPublishingTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/api/scheduled-tasks")
public class ScheduledPublishingTaskController {
@Autowired
private ScheduledPublishingTaskService scheduledPublishingTaskService;
@GetMapping
public List<ScheduledPublishingTask> getAllTasks() {
return scheduledPublishingTaskService.getAllTasks();
}
@GetMapping("/{id}")
public ResponseEntity<ScheduledPublishingTask> getTaskById(@PathVariable Integer id) {
Optional<ScheduledPublishingTask> task = scheduledPublishingTaskService.getTaskById(id);
return task.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
@GetMapping("/company/{companyId}")
public List<ScheduledPublishingTask> getTasksByCompanyId(@PathVariable Integer companyId) {
return scheduledPublishingTaskService.getTasksByCompanyId(companyId);
}
@GetMapping("/status/{status}")
public List<ScheduledPublishingTask> getTasksByStatus(@PathVariable PublishingTaskStatus status) {
return scheduledPublishingTaskService.getTasksByStatus(status);
}
@GetMapping("/company/{companyId}/status/{status}")
public List<ScheduledPublishingTask> getTasksByCompanyIdAndStatus(
@PathVariable Integer companyId, @PathVariable PublishingTaskStatus status) {
return scheduledPublishingTaskService.getTasksByCompanyIdAndStatus(companyId, status);
}
@GetMapping("/pending")
public List<ScheduledPublishingTask> getPendingTasksBeforeTime(@RequestParam Date beforeTime) {
return scheduledPublishingTaskService.getPendingTasksBeforeTime(beforeTime);
}
@GetMapping("/platform-config/{platformConfigId}")
public List<ScheduledPublishingTask> getTasksByPlatformConfigId(@PathVariable Integer platformConfigId) {
return scheduledPublishingTaskService.getTasksByPlatformConfigId(platformConfigId);
}
@PostMapping
public ScheduledPublishingTask createTask(@RequestBody ScheduledPublishingTask task) {
return scheduledPublishingTaskService.saveTask(task);
}
@PutMapping("/{id}")
public ResponseEntity<ScheduledPublishingTask> updateTask(@PathVariable Integer id,
@RequestBody ScheduledPublishingTask taskDetails) {
Optional<ScheduledPublishingTask> task = scheduledPublishingTaskService.getTaskById(id);
if (task.isPresent()) {
ScheduledPublishingTask updatedTask = task.get();
updatedTask.setScheduleTime(taskDetails.getScheduleTime());
updatedTask.setStatus(taskDetails.getStatus());
updatedTask.setRetryCount(taskDetails.getRetryCount());
updatedTask.setMaxRetries(taskDetails.getMaxRetries());
updatedTask.setLastAttemptAt(taskDetails.getLastAttemptAt());
updatedTask.setErrorMessage(taskDetails.getErrorMessage());
ScheduledPublishingTask savedTask = scheduledPublishingTaskService.saveTask(updatedTask);
return ResponseEntity.ok(savedTask);
} else {
return ResponseEntity.notFound().build();
}
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteTask(@PathVariable Integer id) {
scheduledPublishingTaskService.deleteTask(id);
return ResponseEntity.noContent().build();
}
}