diff --git a/src/main/java/edu/tamu/app/controller/ServiceController.java b/src/main/java/edu/tamu/app/controller/ServiceController.java index 2adea81..7c121d5 100644 --- a/src/main/java/edu/tamu/app/controller/ServiceController.java +++ b/src/main/java/edu/tamu/app/controller/ServiceController.java @@ -53,8 +53,9 @@ public ApiResponse getService(@ApiVariable Long id) { @Auth(role = "ROLE_SERVICE_MANAGER") @ApiValidation(business = { @ApiValidation.Business(value = CREATE), @ApiValidation.Business(value = EXISTS) }) public ApiResponse createService(@ApiValidatedModel Service service) { - service = serviceRepo.create(service.getName(), service.getStatus(), service.getIsAuto(), service.getIsPublic(), service.getOnShortList(),service.getServiceUrl()); - simpMessagingTemplate.convertAndSend("/channel/service", new ApiResponse(SUCCESS, serviceRepo.findOne(service.getId()))); + System.out.println(service.getServiceUrl()); + service = serviceRepo.create(service.getName(), service.getStatus(), service.getIsAuto(), service.getIsPublic(), service.getOnShortList(), service.getServiceUrl()); + simpMessagingTemplate.convertAndSend("/channel/service", new ApiResponse(SUCCESS, serviceRepo.findAll())); return new ApiResponse(SUCCESS, service); } @@ -63,7 +64,7 @@ public ApiResponse createService(@ApiValidatedModel Service service) { @ApiValidation(business = { @ApiValidation.Business(value = UPDATE), @ApiValidation.Business(value = NONEXISTS) }) public ApiResponse updateService(@ApiValidatedModel Service service) { service = serviceRepo.save(service); - simpMessagingTemplate.convertAndSend("/channel/service", new ApiResponse(SUCCESS, serviceRepo.findOne(service.getId()))); + simpMessagingTemplate.convertAndSend("/channel/service", new ApiResponse(SUCCESS, serviceRepo.findAll())); return new ApiResponse(SUCCESS, service); } diff --git a/src/main/java/edu/tamu/app/model/Service.java b/src/main/java/edu/tamu/app/model/Service.java index 4d6aa36..76612b3 100644 --- a/src/main/java/edu/tamu/app/model/Service.java +++ b/src/main/java/edu/tamu/app/model/Service.java @@ -41,7 +41,7 @@ public class Service extends BaseEntity { @Column(nullable = false) private boolean isAuto; - @Column(nullable = true, unique = true) + @Column(nullable = true) private String serviceUrl; @Column(nullable = false) diff --git a/src/main/java/edu/tamu/app/model/validation/ServiceValidator.java b/src/main/java/edu/tamu/app/model/validation/ServiceValidator.java index 6c76be6..e81d4ad 100644 --- a/src/main/java/edu/tamu/app/model/validation/ServiceValidator.java +++ b/src/main/java/edu/tamu/app/model/validation/ServiceValidator.java @@ -7,10 +7,9 @@ public class ServiceValidator extends BaseModelValidator { public ServiceValidator() { - System.out.println("validating"); String nameProperty = "name"; this.addInputValidator(new InputValidator(InputValidationType.required, "Service requires a name", nameProperty, true)); - this.addInputValidator(new InputValidator(InputValidationType.minlength, "Service name must be at least 1 characters", nameProperty, 1)); + this.addInputValidator(new InputValidator(InputValidationType.minlength, "Service name must be at least 3 characters", nameProperty, 3)); String statusProperty = "status"; this.addInputValidator(new InputValidator(InputValidationType.required, "Service requires an enum status", statusProperty, true)); diff --git a/src/main/java/edu/tamu/app/service/OverallStatusService.java b/src/main/java/edu/tamu/app/service/OverallStatusService.java new file mode 100644 index 0000000..801e66e --- /dev/null +++ b/src/main/java/edu/tamu/app/service/OverallStatusService.java @@ -0,0 +1,71 @@ +package edu.tamu.app.service; + +import static edu.tamu.app.enums.OverallMessageType.ERROR; +import static edu.tamu.app.enums.OverallMessageType.SUCCESS; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; + +import edu.tamu.app.enums.Status; +import edu.tamu.app.model.OverallStatus; +import edu.tamu.app.model.Service; +import edu.tamu.app.model.repo.ServiceRepo; + +@org.springframework.stereotype.Service +public class OverallStatusService { + + @Autowired + private ServiceRepo serviceRepo; + + private OverallStatus overallStatusFull; + + private OverallStatus overallStatusPublic; + + private static final String SUCCESS_MESSAGE = "All services are working."; + private static final String ERROR_MESSAGE = "Some services are experiencing problems."; + + public OverallStatus getOverallStatusFull() { + return overallStatusFull; + } + + public OverallStatus getOverallStatusPublic() { + return overallStatusPublic; + } + + public void updateStatuses() { + + List servicesFull = serviceRepo.findAll(); + List servicesPublic = serviceRepo.findByIsPublic(true); + + boolean fullServicesAreUp = true; + boolean publicServicesAreUp = true; + + for(Service service : servicesFull) { + if(service.getStatus().equals(Status.DOWN)) { + fullServicesAreUp = false; + break; + } + } + + for(Service service : servicesPublic) { + if(service.getStatus().equals(Status.DOWN)) { + publicServicesAreUp = false; + break; + } + } + + if(fullServicesAreUp) { + this.overallStatusFull = new OverallStatus(SUCCESS, SUCCESS_MESSAGE); + } else { + this.overallStatusFull = new OverallStatus(ERROR, ERROR_MESSAGE); + } + + if(publicServicesAreUp) { + this.overallStatusPublic = new OverallStatus(SUCCESS, SUCCESS_MESSAGE); + } else { + this.overallStatusPublic = new OverallStatus(ERROR, ERROR_MESSAGE); + } + + } +} diff --git a/src/test/java/controller/ServiceControllerTest.java b/src/test/java/controller/ServiceControllerTest.java index 1c8b756..0e6aa73 100644 --- a/src/test/java/controller/ServiceControllerTest.java +++ b/src/test/java/controller/ServiceControllerTest.java @@ -41,10 +41,10 @@ public class ServiceControllerTest { protected static final Boolean TEST_ON_SHORT_LIST = true; protected static final Boolean TEST_NOT_ON_SHORT_LIST = false; - protected static Service TEST_SERVICE1 = new Service(TEST_SERVICE1_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); - protected static Service TEST_SERVICE2 = new Service(TEST_SERVICE2_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_NOT_PUBLIC, TEST_ON_SHORT_LIST,null); - protected static Service TEST_SERVICE3 = new Service(TEST_SERVICE3_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_NOT_ON_SHORT_LIST,null); - protected static Service TEST_MODIFIED_SERVICE1 = new Service(TEST_SERVICE1_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_NOT_PUBLIC, TEST_NOT_ON_SHORT_LIST,null); + protected static Service TEST_SERVICE1 = new Service(TEST_SERVICE1_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, ""); + protected static Service TEST_SERVICE2 = new Service(TEST_SERVICE2_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_NOT_PUBLIC, TEST_ON_SHORT_LIST, ""); + protected static Service TEST_SERVICE3 = new Service(TEST_SERVICE3_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_NOT_ON_SHORT_LIST, ""); + protected static Service TEST_MODIFIED_SERVICE1 = new Service(TEST_SERVICE1_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_NOT_PUBLIC, TEST_NOT_ON_SHORT_LIST, ""); protected static List mockServiceList = new ArrayList(Arrays.asList(new Service[] { TEST_SERVICE1, TEST_SERVICE2,TEST_SERVICE3 })); protected static List mockPublicServiceList = new ArrayList(Arrays.asList(new Service[] { TEST_SERVICE1, TEST_SERVICE3 })); @@ -65,7 +65,7 @@ public void setUp() { when(serviceRepo.findAll()).thenReturn(mockServiceList); when(serviceRepo.findByIsPublic(true)).thenReturn(mockPublicServiceList); when(serviceRepo.findOne(any(Long.class))).thenReturn(TEST_SERVICE1); - when(serviceRepo.create(any(String.class), any(Status.class), any(Boolean.class), any(Boolean.class), any(Boolean.class),null)).thenReturn(TEST_SERVICE1); + when(serviceRepo.create(any(String.class), any(Status.class), any(Boolean.class), any(Boolean.class), any(Boolean.class), any(String.class))).thenReturn(TEST_SERVICE1); when(serviceRepo.save(any(Service.class))).thenReturn(TEST_MODIFIED_SERVICE1); doNothing().when(serviceRepo).delete(any(Service.class)); } diff --git a/src/test/java/edu/tamu/app/model/NoteTest.java b/src/test/java/edu/tamu/app/model/NoteTest.java index 06283ef..7a3166e 100644 --- a/src/test/java/edu/tamu/app/model/NoteTest.java +++ b/src/test/java/edu/tamu/app/model/NoteTest.java @@ -97,7 +97,7 @@ private Note refreshNote(Note note) { @Test public void testUpdateServices() { - Service service1 = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + Service service1 = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); Service service2 = serviceRepo.create(TEST_ALTERNATIVE_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); List serviceList1 = Arrays.asList(service1); List serviceList2 = Arrays.asList(service1, service2); diff --git a/src/test/java/edu/tamu/app/model/ServiceTest.java b/src/test/java/edu/tamu/app/model/ServiceTest.java index bfc42a4..f70f260 100644 --- a/src/test/java/edu/tamu/app/model/ServiceTest.java +++ b/src/test/java/edu/tamu/app/model/ServiceTest.java @@ -59,28 +59,28 @@ public void setUp() { @Test public void testCreate() { long initalCount = serviceRepo.count(); - serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); assertEquals("The number of Services did not increase by one", initalCount + 1, serviceRepo.count()); } @Test(expected = DataIntegrityViolationException.class) public void testNameNotNull() { - serviceRepo.create(null, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + serviceRepo.create(null, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); } @Test(expected = DataIntegrityViolationException.class) public void testStatusNotNull() { - serviceRepo.create(TEST_SERVICE_NAME, null, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + serviceRepo.create(TEST_SERVICE_NAME, null, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); } @Test(expected = ConstraintViolationException.class) public void testNameNotEmpty() { - serviceRepo.create("", TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + serviceRepo.create("", TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); } @Test public void testUpdateName() { - Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); service.setName(TEST_ALTERNATIVE_SERVICE_NAME); service = refreshService(service); assertEquals("Service name was not changed", TEST_ALTERNATIVE_SERVICE_NAME, service.getName()); @@ -93,7 +93,7 @@ private Service refreshService(Service service) { @Test public void testUpdateAliases() { - Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); service.setAliases(TEST_SERVICE_ALIASES); service = refreshService(service); assertEquals("Service aliases not set", true, service.getAliases().contains("Alias 1")); @@ -104,7 +104,7 @@ public void testUpdateAliases() { @Test public void testUpdateStatus() { - Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); service.setStatus(TEST_ALTERNATIVE_SERVICE_STATUS); service = refreshService(service); assertEquals("Service status was not changed", TEST_ALTERNATIVE_SERVICE_STATUS, service.getStatus()); @@ -112,7 +112,7 @@ public void testUpdateStatus() { @Test public void testUpdateServiceUrl() { - Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); service.setServiceUrl(TEST_SERVICE_URL); service = refreshService(service); assertEquals("Service status url was not changed", TEST_SERVICE_URL, service.getServiceUrl()); @@ -124,7 +124,7 @@ public void testUpdateNotes() { Note note2 = noteRepo.create(TEST_NOTE_TITLE2, testUser); List noteList1 = Arrays.asList(note1); List noteList2 = Arrays.asList(note1, note2); - Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); service.setNotes(noteList1); service = refreshService(service); assertEquals("Service notes did not contain the right number of notes", 1, service.getNotes().size()); @@ -138,7 +138,7 @@ public void testUpdateNotes() { @Test public void testDelete() { long initialCount = serviceRepo.count(); - Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_ALTERNATIVE_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST,null); + Service service = serviceRepo.create(TEST_SERVICE_NAME, TEST_ALTERNATIVE_SERVICE_STATUS, TEST_IS_AUTO, TEST_IS_PUBLIC, TEST_ON_SHORT_LIST, null); assertEquals("The service was not created", initialCount + 1, serviceRepo.count()); serviceRepo.delete(service); assertEquals("The service was not deleted", initialCount, serviceRepo.count());