Skip to content

Commit 30754c0

Browse files
authored
Merge pull request #10 from TAMULib/sprint1-staging
Sprint1 staging
2 parents 0113917 + 9b6d82c commit 30754c0

34 files changed

Lines changed: 1205 additions & 261 deletions

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@
3939
<artifactId>weaver-webservice-core</artifactId>
4040
<version>1.2.0-RC2-SNAPSHOT</version>
4141
</dependency>
42+
<dependency>
43+
<groupId>org.postgresql</groupId>
44+
<artifactId>postgresql</artifactId>
45+
<version>9.4.1211</version>
46+
</dependency>
4247
</dependencies>
4348

4449
<build>

src/main/java/edu/tamu/app/aspect/AppControllerAspect.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.aspectj.lang.annotation.Aspect;
1313
import org.springframework.stereotype.Component;
1414

15+
import edu.tamu.app.model.AppUser;
1516
import edu.tamu.framework.aspect.CoreControllerAspect;
1617

1718
/**
@@ -20,6 +21,6 @@
2021
*/
2122
@Component
2223
@Aspect
23-
public class AppControllerAspect extends CoreControllerAspect {
24+
public class AppControllerAspect extends CoreControllerAspect<AppUser> {
2425

2526
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package edu.tamu.app.controller;
2+
3+
import static edu.tamu.framework.enums.ApiResponseType.SUCCESS;
4+
import static edu.tamu.framework.enums.BusinessValidationType.CREATE;
5+
import static edu.tamu.framework.enums.BusinessValidationType.EXISTS;
6+
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.messaging.simp.SimpMessagingTemplate;
9+
import org.springframework.web.bind.annotation.RestController;
10+
11+
import edu.tamu.app.model.Note;
12+
import edu.tamu.app.model.repo.NoteRepo;
13+
import edu.tamu.framework.aspect.annotation.ApiCredentials;
14+
import edu.tamu.framework.aspect.annotation.ApiMapping;
15+
import edu.tamu.framework.aspect.annotation.ApiValidatedModel;
16+
import edu.tamu.framework.aspect.annotation.ApiValidation;
17+
import edu.tamu.framework.aspect.annotation.ApiVariable;
18+
import edu.tamu.framework.aspect.annotation.Auth;
19+
import edu.tamu.framework.model.ApiResponse;
20+
import edu.tamu.framework.model.Credentials;
21+
22+
@RestController
23+
@ApiMapping("/note")
24+
public class NoteController {
25+
26+
@Autowired
27+
private NoteRepo noteRepo;
28+
29+
@Autowired
30+
private SimpMessagingTemplate simpMessagingTemplate;
31+
32+
@ApiMapping("/all")
33+
@Auth(role = "ROLE_ANONYMOUS")
34+
public ApiResponse getAllNotes() {
35+
return new ApiResponse(SUCCESS, noteRepo.findAll());
36+
}
37+
38+
@ApiMapping("/get/{id}")
39+
@Auth(role = "ROLE_ANONYMOUS")
40+
public ApiResponse getNote(@ApiVariable Long id) {
41+
return new ApiResponse(SUCCESS, noteRepo.findOne(id));
42+
}
43+
44+
@ApiMapping("/create")
45+
@Auth(role = "ROLE_SERVICE_MANAGER")
46+
@ApiValidation(business = { @ApiValidation.Business(value = CREATE), @ApiValidation.Business(value = EXISTS) })
47+
public ApiResponse create(@ApiValidatedModel Note note, @ApiCredentials Credentials credentials) {
48+
note = noteRepo.create(note, credentials);
49+
simpMessagingTemplate.convertAndSend("/channel/note", new ApiResponse(SUCCESS, noteRepo.findAll()));
50+
return new ApiResponse(SUCCESS, note);
51+
}
52+
53+
@ApiMapping("/update")
54+
@Auth(role = "ROLE_SERVICE_MANAGER")
55+
public ApiResponse update(@ApiValidatedModel Note note) {
56+
note = noteRepo.save(note);
57+
simpMessagingTemplate.convertAndSend("/channel/note", new ApiResponse(SUCCESS, noteRepo.findAll()));
58+
return new ApiResponse(SUCCESS, note);
59+
}
60+
61+
@ApiMapping("/remove")
62+
@Auth(role = "ROLE_SERVICE_MANAGER")
63+
public ApiResponse remove(@ApiValidatedModel Note note) {
64+
noteRepo.delete(note);
65+
simpMessagingTemplate.convertAndSend("/channel/note", new ApiResponse(SUCCESS, noteRepo.findAll()));
66+
return new ApiResponse(SUCCESS);
67+
}
68+
}
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package edu.tamu.app.controller;
2+
3+
import static edu.tamu.framework.enums.ApiResponseType.SUCCESS;
4+
import static edu.tamu.framework.enums.BusinessValidationType.CREATE;
5+
import static edu.tamu.framework.enums.BusinessValidationType.DELETE;
6+
import static edu.tamu.framework.enums.BusinessValidationType.EXISTS;
7+
import static edu.tamu.framework.enums.BusinessValidationType.NONEXISTS;
8+
import static edu.tamu.framework.enums.BusinessValidationType.UPDATE;
9+
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.messaging.simp.SimpMessagingTemplate;
12+
import org.springframework.web.bind.annotation.RestController;
13+
14+
import edu.tamu.app.model.Notification;
15+
import edu.tamu.app.model.repo.NotificationRepo;
16+
import edu.tamu.framework.aspect.annotation.ApiMapping;
17+
import edu.tamu.framework.aspect.annotation.ApiValidatedModel;
18+
import edu.tamu.framework.aspect.annotation.ApiValidation;
19+
import edu.tamu.framework.aspect.annotation.ApiVariable;
20+
import edu.tamu.framework.aspect.annotation.Auth;
21+
import edu.tamu.framework.model.ApiResponse;
22+
23+
@RestController
24+
@ApiMapping("/notification")
25+
public class NotificationController {
26+
27+
@Autowired
28+
private NotificationRepo notificationRepo;
29+
30+
@Autowired
31+
private SimpMessagingTemplate simpMessagingTemplate;
32+
33+
@ApiMapping("/all")
34+
@Auth(role="ROLE_STAFF")
35+
public ApiResponse getAllNotifications() {
36+
return new ApiResponse(SUCCESS, notificationRepo.findAll());
37+
}
38+
39+
@ApiMapping("/get/{id}")
40+
@Auth(role="ROLE_STAFF")
41+
public ApiResponse getNotification(@ApiVariable Long id) {
42+
return new ApiResponse(SUCCESS, notificationRepo.findOne(id));
43+
}
44+
45+
@ApiMapping("/create")
46+
@Auth(role="ROLE_WEB_MANAGER")
47+
@ApiValidation(business = { @ApiValidation.Business(value = CREATE), @ApiValidation.Business(value = EXISTS) })
48+
public ApiResponse create(@ApiValidatedModel Notification notification) {
49+
notification = notificationRepo.create(notification.getName(), notification.getBody());
50+
simpMessagingTemplate.convertAndSend("/channel/notification/", new ApiResponse(SUCCESS, notification));
51+
return new ApiResponse(SUCCESS, notification);
52+
}
53+
54+
@ApiMapping("/update")
55+
@Auth(role="ROLE_WEB_MANAGER")
56+
@ApiValidation(business = { @ApiValidation.Business(value = UPDATE), @ApiValidation.Business(value = NONEXISTS) })
57+
public ApiResponse update(@ApiValidatedModel Notification notification) {
58+
notification = notificationRepo.save(notification);
59+
simpMessagingTemplate.convertAndSend("/channel/notification/", new ApiResponse(SUCCESS, notification));
60+
return new ApiResponse(SUCCESS, notification);
61+
}
62+
63+
@ApiMapping("/remove")
64+
@Auth(role="ROLE_WEB_MANAGER")
65+
@ApiValidation(business = { @ApiValidation.Business(value = DELETE), @ApiValidation.Business(value = NONEXISTS) })
66+
public ApiResponse remove(@ApiValidatedModel Notification notification) {
67+
notificationRepo.delete(notification);
68+
simpMessagingTemplate.convertAndSend("/channel/notification/", new ApiResponse(SUCCESS, notificationRepo.findAll()));
69+
return new ApiResponse(SUCCESS);
70+
}
71+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package edu.tamu.app.controller;
2+
3+
import static edu.tamu.framework.enums.ApiResponseType.SUCCESS;
4+
import static edu.tamu.framework.enums.BusinessValidationType.CREATE;
5+
import static edu.tamu.framework.enums.BusinessValidationType.DELETE;
6+
import static edu.tamu.framework.enums.BusinessValidationType.EXISTS;
7+
import static edu.tamu.framework.enums.BusinessValidationType.NONEXISTS;
8+
import static edu.tamu.framework.enums.BusinessValidationType.UPDATE;
9+
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.messaging.simp.SimpMessagingTemplate;
12+
import org.springframework.web.bind.annotation.RestController;
13+
14+
import edu.tamu.app.model.Service;
15+
import edu.tamu.app.model.repo.ServiceRepo;
16+
import edu.tamu.framework.aspect.annotation.ApiMapping;
17+
import edu.tamu.framework.aspect.annotation.ApiValidatedModel;
18+
import edu.tamu.framework.aspect.annotation.ApiValidation;
19+
import edu.tamu.framework.aspect.annotation.ApiVariable;
20+
import edu.tamu.framework.aspect.annotation.Auth;
21+
import edu.tamu.framework.model.ApiResponse;
22+
23+
@RestController
24+
@ApiMapping("/service")
25+
public class ServiceController {
26+
27+
@Autowired
28+
private SimpMessagingTemplate simpMessagingTemplate;
29+
30+
@Autowired
31+
private ServiceRepo serviceRepo;
32+
33+
@ApiMapping("/all")
34+
@Auth(role="ROLE_STAFF")
35+
public ApiResponse getAllServices() {
36+
return new ApiResponse(SUCCESS, serviceRepo.findAll());
37+
}
38+
39+
@ApiMapping("/public")
40+
@Auth(role="ROLE_ANONYMOUS")
41+
public ApiResponse getPublicServices() {
42+
return new ApiResponse(SUCCESS, serviceRepo.findByIsPublic(true));
43+
}
44+
45+
@ApiMapping("/get/{id}")
46+
@Auth(role = "ROLE_ANONYMOUS")
47+
public ApiResponse getService(@ApiVariable Long id) {
48+
Service service = serviceRepo.findOne(id);
49+
return new ApiResponse(SUCCESS, service);
50+
}
51+
52+
@ApiMapping("/create")
53+
@Auth(role = "ROLE_SERVICE_MANAGER")
54+
@ApiValidation(business = { @ApiValidation.Business(value = CREATE), @ApiValidation.Business(value = EXISTS) })
55+
public ApiResponse createService(@ApiValidatedModel Service service) {
56+
service = serviceRepo.create(service.getName(), service.getStatus(), service.getIsAuto(), service.getIsPublic(), service.getOnShortList(), service.getServiceUrl());
57+
simpMessagingTemplate.convertAndSend("/channel/service", new ApiResponse(SUCCESS, serviceRepo.findAll()));
58+
return new ApiResponse(SUCCESS, service);
59+
}
60+
61+
@ApiMapping("/update")
62+
@Auth(role = "ROLE_SERVICE_MANAGER")
63+
@ApiValidation(business = { @ApiValidation.Business(value = UPDATE), @ApiValidation.Business(value = NONEXISTS) })
64+
public ApiResponse updateService(@ApiValidatedModel Service service) {
65+
service = serviceRepo.save(service);
66+
simpMessagingTemplate.convertAndSend("/channel/service/" + service.getId(), new ApiResponse(SUCCESS, service));
67+
return new ApiResponse(SUCCESS, service);
68+
}
69+
70+
@ApiMapping("/remove")
71+
@Auth(role = "ROLE_SERVICE_MANAGER")
72+
@ApiValidation(business = { @ApiValidation.Business(value = DELETE), @ApiValidation.Business(value = NONEXISTS) })
73+
public ApiResponse removeService(@ApiValidatedModel Service service) {
74+
serviceRepo.delete(service);
75+
simpMessagingTemplate.convertAndSend("/channel/service", new ApiResponse(SUCCESS, serviceRepo.findAll()));
76+
return new ApiResponse(SUCCESS);
77+
}
78+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package edu.tamu.app.controller;
2+
3+
import edu.tamu.app.model.OverallStatus;
4+
import edu.tamu.app.service.AppRoleService;
5+
import edu.tamu.app.service.MonitorService;
6+
import edu.tamu.framework.aspect.annotation.ApiCredentials;
7+
import edu.tamu.framework.aspect.annotation.ApiMapping;
8+
import edu.tamu.framework.aspect.annotation.Auth;
9+
import edu.tamu.framework.model.ApiResponse;
10+
import edu.tamu.framework.model.Credentials;
11+
12+
import static edu.tamu.framework.enums.ApiResponseType.SUCCESS;
13+
14+
import org.springframework.beans.factory.annotation.Autowired;
15+
import org.springframework.web.bind.annotation.RestController;
16+
17+
@RestController
18+
@ApiMapping("/status")
19+
public class StatusController {
20+
21+
@Autowired
22+
MonitorService monitorService;
23+
24+
@Autowired
25+
AppRoleService appRoleService;
26+
27+
@ApiMapping("/overall-full")
28+
@Auth(role = "ROLE_STAFF")
29+
public ApiResponse overallFull(@ApiCredentials Credentials credentials) {
30+
OverallStatus overallStatus = monitorService.getOverallStatus();
31+
return new ApiResponse(SUCCESS, overallStatus);
32+
}
33+
34+
@ApiMapping("/overall-public")
35+
@Auth(role = "ROLE_ANONYMOUS")
36+
public ApiResponse overallPublic(@ApiCredentials Credentials credentials) {
37+
OverallStatus overallStatus = monitorService.getOverallStatusPublic();
38+
return new ApiResponse(SUCCESS, overallStatus);
39+
}
40+
41+
}

0 commit comments

Comments
 (0)