use of io.apiman.manager.api.beans.events.IVersionedApimanEvent in project apiman by apiman.
the class DefaultTemplatesTest method contract_approval_response_txt.
@Test
public void contract_approval_response_txt() throws IOException {
var appDeveloper = new UserDto().setFullName("John Smith Appdev").setUsername("JohnSmith123").setEmail("foo@apiman.io").setLocale(Locale.ENGLISH);
ContractApprovalEvent approvalEvent = ContractApprovalEvent.builder().setHeaders(ApimanEventHeaders.builder().setId("Event123").setSource(URI.create("https://example.org")).setSubject("Hello").setEventVersion(1L).setTime(OffsetDateTime.now()).setType("X").build()).setApiOrgId("ApiOrg").setApiId("CoolApi").setApiVersion("1.0").setClientOrgId("MobileKompany").setClientId("MobileApp").setClientVersion("2.0").setContractId("1234").setPlanId("Gold").setPlanVersion("1.3").setApprover(appDeveloper).setApproved(true).build();
UserDto recipient = new UserDto().setEmail("approver@apiman.io").setUsername("ApproverPerson").setFullName("David Approver").setLocale(Locale.ENGLISH);
NotificationDto<IVersionedApimanEvent> notificationDto = new NotificationDto<>().setId(123L).setCategory(NotificationCategory.API_ADMINISTRATION).setReason("whatever").setReasonMessage("hi").setStatus(NotificationStatus.OPEN).setCreatedOn(OffsetDateTime.now()).setModifiedOn(OffsetDateTime.now()).setRecipient(recipient).setSource("adsadsaad").setPayload(approvalEvent);
QuteTemplateEngine engine = new QuteTemplateEngine(CONFIG);
engine.applyTemplate(Files.readString(CONFIG.getConfigDirectory().resolve("notifications/email/tpl/en/apiman.client.contract.approval.granted.txt")), EmailNotificationDispatcher.createDefaultTemplateMap(notificationDto, CONFIG));
}
use of io.apiman.manager.api.beans.events.IVersionedApimanEvent in project apiman by apiman.
the class EventFactory method findEvents.
private void findEvents() {
Reflections reflections = new Reflections("io.apiman.manager.api");
Set<Class<? extends IVersionedApimanEvent>> eventKlazzes = reflections.getSubTypesOf(IVersionedApimanEvent.class);
for (Class<? extends IVersionedApimanEvent> klazz : eventKlazzes) {
String name = calculateName(klazz);
ApimanEvent metadata = getAnnotation(klazz);
klazzez.put(name, new ClazzAndMetadata(metadata, klazz));
LOGGER.debug("Calculated name for {0} as {1}", klazz, name);
}
}
use of io.apiman.manager.api.beans.events.IVersionedApimanEvent in project apiman by apiman.
the class EventFactory method calculateName.
private String calculateName(Class<? extends IVersionedApimanEvent> klazz) {
if (klazz.isAnnotationPresent(ApimanEvent.class)) {
ApimanEvent anno = klazz.getAnnotation(ApimanEvent.class);
LOGGER.debug("Found annotation {0} for {1}", anno, klazz.getCanonicalName());
if (!"".equals(anno.name())) {
return anno.name();
} else {
return klazz.getCanonicalName();
}
} else {
return klazz.getCanonicalName();
}
}
use of io.apiman.manager.api.beans.events.IVersionedApimanEvent in project apiman by apiman.
the class EventService method getType.
private String getType(IVersionedApimanEvent event) {
String currentValue = event.getHeaders().getType();
if (StringUtils.isEmpty(currentValue)) {
if (event.getClass().isAnnotationPresent(ApimanEvent.class)) {
ApimanEvent ev = event.getClass().getAnnotation(ApimanEvent.class);
currentValue = ev.name();
}
}
return Optional.ofNullable(currentValue).filter(s -> !s.isBlank()).orElse(event.getClass().getCanonicalName());
}
use of io.apiman.manager.api.beans.events.IVersionedApimanEvent in project apiman by apiman.
the class DefaultTemplatesTest method contract_approval_response_html.
@Test
public void contract_approval_response_html() throws IOException {
var appDeveloper = new UserDto().setFullName("John Smith Appdev").setUsername("JohnSmith123").setEmail("foo@apiman.io").setLocale(Locale.ENGLISH);
ContractApprovalEvent approvalEvent = ContractApprovalEvent.builder().setHeaders(ApimanEventHeaders.builder().setId("Event123").setSource(URI.create("https://example.org")).setSubject("Hello").setEventVersion(1L).setTime(OffsetDateTime.now()).setType("X").build()).setApiOrgId("ApiOrg").setApiId("CoolApi").setApiVersion("1.0").setClientOrgId("MobileKompany").setClientId("MobileApp").setClientVersion("2.0").setContractId("1234").setPlanId("Gold").setPlanVersion("1.3").setApprover(appDeveloper).setApproved(true).build();
UserDto recipient = new UserDto().setEmail("approver@apiman.io").setUsername("ApproverPerson").setFullName("David Approver").setLocale(Locale.ENGLISH);
NotificationDto<IVersionedApimanEvent> notificationDto = new NotificationDto<>().setId(123L).setCategory(NotificationCategory.API_ADMINISTRATION).setReason("whatever").setReasonMessage("hi").setStatus(NotificationStatus.OPEN).setCreatedOn(OffsetDateTime.now()).setModifiedOn(OffsetDateTime.now()).setRecipient(recipient).setSource("adsadsaad").setPayload(approvalEvent);
QuteTemplateEngine engine = new QuteTemplateEngine(CONFIG);
engine.applyTemplate(Files.readString(CONFIG.getConfigDirectory().resolve("notifications/email/tpl/en/apiman.client.contract.approval.granted.html")), EmailNotificationDispatcher.createDefaultTemplateMap(notificationDto, CONFIG));
}
Aggregations