WebsiteBuildConfigController.java
2.6 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
// website/controller/WebsiteBuildConfigController.java
package com.aigeo.website.controller;
import com.aigeo.website.entity.WebsiteBuildConfig;
import com.aigeo.website.service.WebsiteBuildConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Optional;
@RestController
@RequestMapping("/api/website-build-configs")
public class WebsiteBuildConfigController {
@Autowired
private WebsiteBuildConfigService websiteBuildConfigService;
@GetMapping("/project/{projectId}")
public ResponseEntity<WebsiteBuildConfig> getConfigByProjectId(@PathVariable Integer projectId) {
Optional<WebsiteBuildConfig> config = websiteBuildConfigService.getConfigByProjectId(projectId);
return config.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
@GetMapping("/{id}")
public ResponseEntity<WebsiteBuildConfig> getConfigById(@PathVariable Integer id) {
Optional<WebsiteBuildConfig> config = websiteBuildConfigService.getConfigById(id);
return config.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
@PostMapping
public WebsiteBuildConfig createConfig(@RequestBody WebsiteBuildConfig config) {
return websiteBuildConfigService.saveConfig(config);
}
@PutMapping("/{id}")
public ResponseEntity<WebsiteBuildConfig> updateConfig(@PathVariable Integer id,
@RequestBody WebsiteBuildConfig configDetails) {
Optional<WebsiteBuildConfig> config = websiteBuildConfigService.getConfigById(id);
if (config.isPresent()) {
WebsiteBuildConfig updatedConfig = config.get();
updatedConfig.setWebsiteType(configDetails.getWebsiteType());
updatedConfig.setSiteIdentity(configDetails.getSiteIdentity());
updatedConfig.setDesignPreferences(configDetails.getDesignPreferences());
updatedConfig.setSitemapStructure(configDetails.getSitemapStructure());
WebsiteBuildConfig savedConfig = websiteBuildConfigService.saveConfig(updatedConfig);
return ResponseEntity.ok(savedConfig);
} else {
return ResponseEntity.notFound().build();
}
}
@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteConfig(@PathVariable Integer id) {
websiteBuildConfigService.deleteConfig(id);
return ResponseEntity.noContent().build();
}
}