use of org.finos.waltz.web.DatumRoute in project waltz by khartec.
the class PhysicalSpecDefinitionEndpoint method register.
@Override
public void register() {
String findForSpecificationPath = WebUtilities.mkPath(BASE_URL, "specification", ":id");
String findBySelectorPath = WebUtilities.mkPath(BASE_URL, "selector");
String createPath = WebUtilities.mkPath(BASE_URL, "specification", ":id");
String updateStatusPath = WebUtilities.mkPath(BASE_URL, "specification", ":id", "status");
String deletePath = WebUtilities.mkPath(BASE_URL, "specification", ":id");
ListRoute<PhysicalSpecDefinition> findForSpecificationRoute = (req, res) -> specDefinitionService.findForSpecification(WebUtilities.getId(req));
ListRoute<PhysicalSpecDefinition> findBySelectorRoute = (req, res) -> specDefinitionService.findBySelector(WebUtilities.readIdSelectionOptionsFromBody(req));
DatumRoute<Long> createRoute = (req, res) -> {
WebUtilities.requireRole(userRoleService, req, SystemRole.LOGICAL_DATA_FLOW_EDITOR);
PhysicalSpecDefinitionChangeCommand physicalSpecDefinitionChangeCommand = WebUtilities.readBody(req, PhysicalSpecDefinitionChangeCommand.class);
long physicalSpecificationId = WebUtilities.getId(req);
Set<String> existingVersions = map(specDefinitionService.findForSpecification(physicalSpecificationId), d -> d.version());
if (existingVersions.contains(physicalSpecDefinitionChangeCommand.version())) {
throw new DuplicateKeyException("Cannot create physical specification definition with version that already exists");
}
return specDefinitionService.create(WebUtilities.getUsername(req), physicalSpecificationId, physicalSpecDefinitionChangeCommand);
};
DatumRoute<Boolean> updateStatusRoute = (req, res) -> {
WebUtilities.requireRole(userRoleService, req, SystemRole.LOGICAL_DATA_FLOW_EDITOR);
return specDefinitionService.updateStatus(WebUtilities.getUsername(req), WebUtilities.getId(req), WebUtilities.readBody(req, ReleaseLifecycleStatusChangeCommand.class));
};
DatumRoute<Integer> deleteRoute = (req, res) -> {
WebUtilities.requireRole(userRoleService, req, SystemRole.LOGICAL_DATA_FLOW_EDITOR);
return specDefinitionService.delete(WebUtilities.getUsername(req), WebUtilities.getId(req));
};
EndpointUtilities.getForList(findForSpecificationPath, findForSpecificationRoute);
EndpointUtilities.postForList(findBySelectorPath, findBySelectorRoute);
EndpointUtilities.postForDatum(createPath, createRoute);
EndpointUtilities.putForDatum(updateStatusPath, updateStatusRoute);
EndpointUtilities.deleteForDatum(deletePath, deleteRoute);
}
use of org.finos.waltz.web.DatumRoute in project waltz by khartec.
the class AttestationInstanceEndpoint method register.
@Override
public void register() {
String attestInstancePath = mkPath(BASE_URL, "attest", ":id");
String attestEntityForUserPath = mkPath(BASE_URL, "attest-entity");
String findByEntityRefPath = mkPath(BASE_URL, "entity", ":kind", ":id");
String findByRunIdPath = mkPath(BASE_URL, "run", ":id");
String findUnattestedByUserPath = mkPath(BASE_URL, "unattested", "user");
String findAllByUserPath = mkPath(BASE_URL, "all", "user");
String findHistoricalForPendingByUserPath = mkPath(BASE_URL, "historical", "user");
String findPersonsByInstancePath = mkPath(BASE_URL, ":id", "person");
String findBySelectorPath = mkPath(BASE_URL, "selector");
String findLatestMeasurableAttestationsPath = mkPath(BASE_URL, "latest", "measurable-category", "entity", ":kind", ":id");
String findApplicationAttestationInstancesForKindAndSelectorPath = mkPath(BASE_URL, "applications", "attested-entity", ":kind", ":id");
String findApplicationAttestationSummaryForSelectorPath = mkPath(BASE_URL, "app-summary");
String cleanupOrphansPath = mkPath(BASE_URL, "cleanup-orphans");
String reassignRecipientsPath = mkPath(BASE_URL, "reassign-recipients");
String getCountsOfRecipientsToReassignPath = mkPath(BASE_URL, "reassign-counts");
DatumRoute<Boolean> attestInstanceRoute = (req, res) -> attestationInstanceService.attestInstance(getId(req), getUsername(req));
ListRoute<AttestationInstance> findByEntityRefRoute = (req, res) -> attestationInstanceService.findByEntityReference(getEntityReference(req));
ListRoute<AttestationInstance> findUnattestedByRecipientRoute = (req, res) -> attestationInstanceService.findByRecipient(getUsername(req), true);
ListRoute<AttestationInstance> findAllByRecipientRoute = (req, res) -> attestationInstanceService.findByRecipient(getUsername(req), false);
ListRoute<AttestationInstance> findHistoricalForPendingByRecipientRoute = (req, res) -> attestationInstanceService.findHistoricalForPendingByUserId(getUsername(req));
ListRoute<AttestationInstance> findByRunIdRoute = (req, res) -> attestationInstanceService.findByRunId(getId(req));
ListRoute<Person> findPersonsByInstanceRoute = (request, response) -> {
long id = Long.valueOf(request.params("id"));
return attestationInstanceService.findPersonsByInstanceId(id);
};
ListRoute<AttestationInstance> findBySelectorRoute = ((request, response) -> attestationInstanceService.findByIdSelector(readIdSelectionOptionsFromBody(request)));
ListRoute<LatestMeasurableAttestationInfo> findLatestMeasurableAttestationsRoute = ((request, response) -> attestationInstanceService.findLatestMeasurableAttestations(getEntityReference(request)));
ListRoute<ApplicationAttestationInstanceSummary> findApplicationAttestationInstancesForKindAndSelectorRoute = ((request, response) -> {
EntityKind attestedKind = getKind(request);
Long attestedId = StringUtilities.parseLong(request.params("id"), null);
ApplicationAttestationInstanceInfo applicationAttestationInstanceInfo = readBody(request, ApplicationAttestationInstanceInfo.class);
return attestationInstanceService.findApplicationAttestationInstancesForKindAndSelector(attestedKind, attestedId, applicationAttestationInstanceInfo);
});
ListRoute<ApplicationAttestationSummaryCounts> findApplicationAttestationSummaryForSelectorRoute = ((request, response) -> attestationInstanceService.findAttestationInstanceSummaryForSelector(readBody(request, ApplicationAttestationInstanceInfo.class)));
DatumRoute<Boolean> attestEntityForUserRoute = (req, res) -> attestationInstanceService.attestForEntity(getUsername(req), readCreateCommand(req));
postForDatum(attestInstancePath, attestInstanceRoute);
postForDatum(attestEntityForUserPath, attestEntityForUserRoute);
getForList(findByEntityRefPath, findByEntityRefRoute);
getForList(findUnattestedByUserPath, findUnattestedByRecipientRoute);
getForList(findAllByUserPath, findAllByRecipientRoute);
getForList(findHistoricalForPendingByUserPath, findHistoricalForPendingByRecipientRoute);
getForList(findByRunIdPath, findByRunIdRoute);
getForList(findPersonsByInstancePath, findPersonsByInstanceRoute);
getForList(findLatestMeasurableAttestationsPath, findLatestMeasurableAttestationsRoute);
postForList(findBySelectorPath, findBySelectorRoute);
postForList(findApplicationAttestationInstancesForKindAndSelectorPath, findApplicationAttestationInstancesForKindAndSelectorRoute);
postForList(findApplicationAttestationSummaryForSelectorPath, findApplicationAttestationSummaryForSelectorRoute);
getForDatum(cleanupOrphansPath, this::cleanupOrphansRoute);
postForDatum(reassignRecipientsPath, this::reassignRecipientsRoute);
getForDatum(getCountsOfRecipientsToReassignPath, this::getCountsOfRecipientsToReassign);
}
use of org.finos.waltz.web.DatumRoute in project waltz by khartec.
the class UserAgentInfoEndpoint method register.
@Override
public void register() {
String findForUserPath = WebUtilities.mkPath(BASE_URL, "user", ":userName");
String recordLoginPath = WebUtilities.mkPath(BASE_URL);
ListRoute<UserAgentInfo> findForUserRoute = ((request, response) -> {
String userName = request.params("userName");
String limitStr = request.queryParams("limit");
int limit = limitStr == null || limitStr.equals("") ? DEFAULT_LIMIT : Integer.parseInt(limitStr);
return userAgentInfoService.findLoginsForUser(userName, limit);
});
DatumRoute<Integer> recordLoginRoute = (request, response) -> {
BrowserInfo browserInfo = WebUtilities.readBody(request, BrowserInfo.class);
UserAgentInfo userAgentInfo = ImmutableUserAgentInfo.builder().userName(WebUtilities.getUsername(request)).userAgent(request.userAgent()).operatingSystem(browserInfo.operatingSystem()).resolution(browserInfo.resolution()).loginTimestamp(DateTimeUtilities.nowUtc()).ipAddress(request.ip()).build();
return userAgentInfoService.save(userAgentInfo);
};
EndpointUtilities.getForList(findForUserPath, findForUserRoute);
EndpointUtilities.postForDatum(recordLoginPath, recordLoginRoute);
}
Aggregations