diff --git a/README.md b/README.md index d393331..523cb08 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Add the following dependency to your project's `pom.xml`: com.notificationapi notificationapi-java-server-sdk - 0.1.0 + 0.3.0 ``` diff --git a/pom.xml b/pom.xml index c9a2cff..bb09afc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.notificationapi notificationapi-java-server-sdk - 0.2.0 + 0.3.0 jar diff --git a/src/main/java/com/notificationapi/model/CallOptions.java b/src/main/java/com/notificationapi/model/CallOptions.java new file mode 100644 index 0000000..a299728 --- /dev/null +++ b/src/main/java/com/notificationapi/model/CallOptions.java @@ -0,0 +1,13 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class CallOptions { + @JsonProperty("message") + private String message; + + public String getMessage() { return message; } + public CallOptions setMessage(String message) { this.message = message; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/Device.java b/src/main/java/com/notificationapi/model/Device.java new file mode 100644 index 0000000..15bb68b --- /dev/null +++ b/src/main/java/com/notificationapi/model/Device.java @@ -0,0 +1,43 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class Device { + @JsonProperty("app_id") + private String appId; + + @JsonProperty("ad_id") + private String adId; + + @JsonProperty("device_id") + private String deviceId; + + @JsonProperty("platform") + private String platform; + + @JsonProperty("manufacturer") + private String manufacturer; + + @JsonProperty("model") + private String model; + + public String getAppId() { return appId; } + public Device setAppId(String appId) { this.appId = appId; return this; } + + public String getAdId() { return adId; } + public Device setAdId(String adId) { this.adId = adId; return this; } + + public String getDeviceId() { return deviceId; } + public Device setDeviceId(String deviceId) { this.deviceId = deviceId; return this; } + + public String getPlatform() { return platform; } + public Device setPlatform(String platform) { this.platform = platform; return this; } + + public String getManufacturer() { return manufacturer; } + public Device setManufacturer(String manufacturer) { this.manufacturer = manufacturer; return this; } + + public String getModel() { return model; } + public Device setModel(String model) { this.model = model; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/EmailOptions.java b/src/main/java/com/notificationapi/model/EmailOptions.java new file mode 100644 index 0000000..2975cb1 --- /dev/null +++ b/src/main/java/com/notificationapi/model/EmailOptions.java @@ -0,0 +1,29 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class EmailOptions { + @JsonProperty("subject") + private String subject; + @JsonProperty("html") + private String html; + @JsonProperty("previewText") + private String previewText; + @JsonProperty("senderName") + private String senderName; + @JsonProperty("senderEmail") + private String senderEmail; + + public String getSubject() { return subject; } + public EmailOptions setSubject(String subject) { this.subject = subject; return this; } + public String getHtml() { return html; } + public EmailOptions setHtml(String html) { this.html = html; return this; } + public String getPreviewText() { return previewText; } + public EmailOptions setPreviewText(String previewText) { this.previewText = previewText; return this; } + public String getSenderName() { return senderName; } + public EmailOptions setSenderName(String senderName) { this.senderName = senderName; return this; } + public String getSenderEmail() { return senderEmail; } + public EmailOptions setSenderEmail(String senderEmail) { this.senderEmail = senderEmail; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/InAppOptions.java b/src/main/java/com/notificationapi/model/InAppOptions.java new file mode 100644 index 0000000..65999aa --- /dev/null +++ b/src/main/java/com/notificationapi/model/InAppOptions.java @@ -0,0 +1,21 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class InAppOptions { + @JsonProperty("title") + private String title; + @JsonProperty("url") + private String url; + @JsonProperty("image") + private String image; + + public String getTitle() { return title; } + public InAppOptions setTitle(String title) { this.title = title; return this; } + public String getUrl() { return url; } + public InAppOptions setUrl(String url) { this.url = url; return this; } + public String getImage() { return image; } + public InAppOptions setImage(String image) { this.image = image; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/MobilePushOptions.java b/src/main/java/com/notificationapi/model/MobilePushOptions.java new file mode 100644 index 0000000..50d04ec --- /dev/null +++ b/src/main/java/com/notificationapi/model/MobilePushOptions.java @@ -0,0 +1,17 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class MobilePushOptions { + @JsonProperty("title") + private String title; + @JsonProperty("message") + private String message; + + public String getTitle() { return title; } + public MobilePushOptions setTitle(String title) { this.title = title; return this; } + public String getMessage() { return message; } + public MobilePushOptions setMessage(String message) { this.message = message; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/NotificationRequest.java b/src/main/java/com/notificationapi/model/NotificationRequest.java index 52270a5..9891ed6 100644 --- a/src/main/java/com/notificationapi/model/NotificationRequest.java +++ b/src/main/java/com/notificationapi/model/NotificationRequest.java @@ -18,6 +18,54 @@ public class NotificationRequest { @JsonProperty("mergeTags") private Map mergeTags; + @JsonProperty("type") + private String type; + + @JsonProperty("to") + private User to; + + @JsonProperty("forceChannels") + private java.util.List forceChannels; + + @JsonProperty("parameters") + private Map parameters; + + @JsonProperty("secondaryId") + private String secondaryId; + + @JsonProperty("templateId") + private String templateId; + + @JsonProperty("subNotificationId") + private String subNotificationId; + + @JsonProperty("options") + private Options options; + + @JsonProperty("schedule") + private String schedule; + + @JsonProperty("email") + private EmailOptions email; + + @JsonProperty("inapp") + private InAppOptions inapp; + + @JsonProperty("sms") + private SmsOptions sms; + + @JsonProperty("call") + private CallOptions call; + + @JsonProperty("web_push") + private WebPushOptions webPush; + + @JsonProperty("mobile_push") + private MobilePushOptions mobilePush; + + @JsonProperty("slack") + private SlackOptions slack; + /** * Default constructor for NotificationRequest. */ @@ -94,4 +142,324 @@ public NotificationRequest setMergeTags(Map mergeTags) { this.mergeTags = mergeTags; return this; } + + /** + * Gets the type of the notification. + * + * @return the type of the notification + */ + public String getType() { + return type; + } + + /** + * Sets the type of the notification. + * + * @param type the type of the notification to set + * @return this NotificationRequest instance + */ + public NotificationRequest setType(String type) { + this.type = type; + return this; + } + + /** + * Gets the user to send the notification to. + * + * @return the user + */ + public User getTo() { + return to; + } + + /** + * Sets the user to send the notification to. + * + * @param to the user to set + * @return this NotificationRequest instance + */ + public NotificationRequest setTo(User to) { + this.to = to; + return this; + } + + /** + * Gets the force channels for the notification. + * + * @return the force channels + */ + public java.util.List getForceChannels() { + return forceChannels; + } + + /** + * Sets the force channels for the notification. + * + * @param forceChannels the force channels to set + * @return this NotificationRequest instance + */ + public NotificationRequest setForceChannels(java.util.List forceChannels) { + this.forceChannels = forceChannels; + return this; + } + + /** + * Gets the parameters for the notification. + * + * @return the parameters + */ + public Map getParameters() { + return parameters; + } + + /** + * Sets the parameters for the notification. + * + * @param parameters the parameters to set + * @return this NotificationRequest instance + */ + public NotificationRequest setParameters(Map parameters) { + this.parameters = parameters; + return this; + } + + /** + * Gets the secondary ID for the notification. + * + * @return the secondary ID + */ + public String getSecondaryId() { + return secondaryId; + } + + /** + * Sets the secondary ID for the notification. + * + * @param secondaryId the secondary ID to set + * @return this NotificationRequest instance + */ + public NotificationRequest setSecondaryId(String secondaryId) { + this.secondaryId = secondaryId; + return this; + } + + /** + * Gets the template ID for the notification. + * + * @return the template ID + */ + public String getTemplateId() { + return templateId; + } + + /** + * Sets the template ID for the notification. + * + * @param templateId the template ID to set + * @return this NotificationRequest instance + */ + public NotificationRequest setTemplateId(String templateId) { + this.templateId = templateId; + return this; + } + + /** + * Gets the sub-notification ID for the notification. + * + * @return the sub-notification ID + */ + public String getSubNotificationId() { + return subNotificationId; + } + + /** + * Sets the sub-notification ID for the notification. + * + * @param subNotificationId the sub-notification ID to set + * @return this NotificationRequest instance + */ + public NotificationRequest setSubNotificationId(String subNotificationId) { + this.subNotificationId = subNotificationId; + return this; + } + + /** + * Gets the options for the notification. + * + * @return the options + */ + public Options getOptions() { + return options; + } + + /** + * Sets the options for the notification. + * + * @param options the options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setOptions(Options options) { + this.options = options; + return this; + } + + /** + * Gets the schedule for the notification. + * + * @return the schedule + */ + public String getSchedule() { + return schedule; + } + + /** + * Sets the schedule for the notification. + * + * @param schedule the schedule to set + * @return this NotificationRequest instance + */ + public NotificationRequest setSchedule(String schedule) { + this.schedule = schedule; + return this; + } + + /** + * Gets the email options for the notification. + * + * @return the email options + */ + public EmailOptions getEmail() { + return email; + } + + /** + * Sets the email options for the notification. + * + * @param email the email options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setEmail(EmailOptions email) { + this.email = email; + return this; + } + + /** + * Gets the in-app options for the notification. + * + * @return the in-app options + */ + public InAppOptions getInapp() { + return inapp; + } + + /** + * Sets the in-app options for the notification. + * + * @param inapp the in-app options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setInapp(InAppOptions inapp) { + this.inapp = inapp; + return this; + } + + /** + * Gets the SMS options for the notification. + * + * @return the SMS options + */ + public SmsOptions getSms() { + return sms; + } + + /** + * Sets the SMS options for the notification. + * + * @param sms the SMS options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setSms(SmsOptions sms) { + this.sms = sms; + return this; + } + + /** + * Gets the call options for the notification. + * + * @return the call options + */ + public CallOptions getCall() { + return call; + } + + /** + * Sets the call options for the notification. + * + * @param call the call options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setCall(CallOptions call) { + this.call = call; + return this; + } + + /** + * Gets the web push options for the notification. + * + * @return the web push options + */ + public WebPushOptions getWebPush() { + return webPush; + } + + /** + * Sets the web push options for the notification. + * + * @param webPush the web push options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setWebPush(WebPushOptions webPush) { + this.webPush = webPush; + return this; + } + + /** + * Gets the mobile push options for the notification. + * + * @return the mobile push options + */ + public MobilePushOptions getMobilePush() { + return mobilePush; + } + + /** + * Sets the mobile push options for the notification. + * + * @param mobilePush the mobile push options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setMobilePush(MobilePushOptions mobilePush) { + this.mobilePush = mobilePush; + return this; + } + + /** + * Gets the Slack options for the notification. + * + * @return the Slack options + */ + public SlackOptions getSlack() { + return slack; + } + + /** + * Sets the Slack options for the notification. + * + * @param slack the Slack options to set + * @return this NotificationRequest instance + */ + public NotificationRequest setSlack(SlackOptions slack) { + this.slack = slack; + return this; + } } \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/Options.java b/src/main/java/com/notificationapi/model/Options.java new file mode 100644 index 0000000..c4ee854 --- /dev/null +++ b/src/main/java/com/notificationapi/model/Options.java @@ -0,0 +1,118 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.List; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class Options { + @JsonProperty("email") + private EmailOptions email; + @JsonProperty("apn") + private ApnOptions apn; + @JsonProperty("fcm") + private FcmOptions fcm; + + public EmailOptions getEmail() { return email; } + public Options setEmail(EmailOptions email) { this.email = email; return this; } + public ApnOptions getApn() { return apn; } + public Options setApn(ApnOptions apn) { this.apn = apn; return this; } + public FcmOptions getFcm() { return fcm; } + public Options setFcm(FcmOptions fcm) { this.fcm = fcm; return this; } + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class EmailOptions { + @JsonProperty("replyToAddresses") + private List replyToAddresses; + @JsonProperty("ccAddresses") + private List ccAddresses; + @JsonProperty("bccAddresses") + private List bccAddresses; + @JsonProperty("fromName") + private String fromName; + @JsonProperty("fromAddress") + private String fromAddress; + @JsonProperty("attachments") + private List attachments; + public List getReplyToAddresses() { return replyToAddresses; } + public EmailOptions setReplyToAddresses(List replyToAddresses) { this.replyToAddresses = replyToAddresses; return this; } + public List getCcAddresses() { return ccAddresses; } + public EmailOptions setCcAddresses(List ccAddresses) { this.ccAddresses = ccAddresses; return this; } + public List getBccAddresses() { return bccAddresses; } + public EmailOptions setBccAddresses(List bccAddresses) { this.bccAddresses = bccAddresses; return this; } + public String getFromName() { return fromName; } + public EmailOptions setFromName(String fromName) { this.fromName = fromName; return this; } + public String getFromAddress() { return fromAddress; } + public EmailOptions setFromAddress(String fromAddress) { this.fromAddress = fromAddress; return this; } + public List getAttachments() { return attachments; } + public EmailOptions setAttachments(List attachments) { this.attachments = attachments; return this; } + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class Attachment { + @JsonProperty("filename") + private String filename; + @JsonProperty("url") + private String url; + public String getFilename() { return filename; } + public Attachment setFilename(String filename) { this.filename = filename; return this; } + public String getUrl() { return url; } + public Attachment setUrl(String url) { this.url = url; return this; } + } + } + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class ApnOptions { + @JsonProperty("expiry") + private Integer expiry; + @JsonProperty("priority") + private Integer priority; + @JsonProperty("collapseId") + private String collapseId; + @JsonProperty("threadId") + private String threadId; + @JsonProperty("badge") + private Integer badge; + @JsonProperty("sound") + private String sound; + @JsonProperty("contentAvailable") + private Boolean contentAvailable; + public Integer getExpiry() { return expiry; } + public ApnOptions setExpiry(Integer expiry) { this.expiry = expiry; return this; } + public Integer getPriority() { return priority; } + public ApnOptions setPriority(Integer priority) { this.priority = priority; return this; } + public String getCollapseId() { return collapseId; } + public ApnOptions setCollapseId(String collapseId) { this.collapseId = collapseId; return this; } + public String getThreadId() { return threadId; } + public ApnOptions setThreadId(String threadId) { this.threadId = threadId; return this; } + public Integer getBadge() { return badge; } + public ApnOptions setBadge(Integer badge) { this.badge = badge; return this; } + public String getSound() { return sound; } + public ApnOptions setSound(String sound) { this.sound = sound; return this; } + public Boolean getContentAvailable() { return contentAvailable; } + public ApnOptions setContentAvailable(Boolean contentAvailable) { this.contentAvailable = contentAvailable; return this; } + } + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class FcmOptions { + @JsonProperty("android") + private AndroidOptions android; + public AndroidOptions getAndroid() { return android; } + public FcmOptions setAndroid(AndroidOptions android) { this.android = android; return this; } + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class AndroidOptions { + @JsonProperty("collapseKey") + private String collapseKey; + @JsonProperty("priority") + private String priority; + @JsonProperty("ttl") + private Integer ttl; + @JsonProperty("restrictedPackageName") + private String restrictedPackageName; + public String getCollapseKey() { return collapseKey; } + public AndroidOptions setCollapseKey(String collapseKey) { this.collapseKey = collapseKey; return this; } + public String getPriority() { return priority; } + public AndroidOptions setPriority(String priority) { this.priority = priority; return this; } + public Integer getTtl() { return ttl; } + public AndroidOptions setTtl(Integer ttl) { this.ttl = ttl; return this; } + public String getRestrictedPackageName() { return restrictedPackageName; } + public AndroidOptions setRestrictedPackageName(String restrictedPackageName) { this.restrictedPackageName = restrictedPackageName; return this; } + } + } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/PushProvider.java b/src/main/java/com/notificationapi/model/PushProvider.java new file mode 100644 index 0000000..73ad8ab --- /dev/null +++ b/src/main/java/com/notificationapi/model/PushProvider.java @@ -0,0 +1,6 @@ +package com.notificationapi.model; + +public enum PushProvider { + FCM, + APN +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/PushSubscription.java b/src/main/java/com/notificationapi/model/PushSubscription.java new file mode 100644 index 0000000..53f9b6c --- /dev/null +++ b/src/main/java/com/notificationapi/model/PushSubscription.java @@ -0,0 +1,33 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PushSubscription { + @JsonProperty("endpoint") + private String endpoint; + + @JsonProperty("keys") + private Keys keys; + + public String getEndpoint() { return endpoint; } + public PushSubscription setEndpoint(String endpoint) { this.endpoint = endpoint; return this; } + + public Keys getKeys() { return keys; } + public PushSubscription setKeys(Keys keys) { this.keys = keys; return this; } + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class Keys { + @JsonProperty("p256dh") + private String p256dh; + @JsonProperty("auth") + private String auth; + + public String getP256dh() { return p256dh; } + public Keys setP256dh(String p256dh) { this.p256dh = p256dh; return this; } + + public String getAuth() { return auth; } + public Keys setAuth(String auth) { this.auth = auth; return this; } + } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/PushToken.java b/src/main/java/com/notificationapi/model/PushToken.java new file mode 100644 index 0000000..1fba3f7 --- /dev/null +++ b/src/main/java/com/notificationapi/model/PushToken.java @@ -0,0 +1,25 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PushToken { + @JsonProperty("type") + private PushProvider type; + + @JsonProperty("token") + private String token; + + @JsonProperty("device") + private Device device; + + public PushProvider getType() { return type; } + public PushToken setType(PushProvider type) { this.type = type; return this; } + + public String getToken() { return token; } + public PushToken setToken(String token) { this.token = token; return this; } + + public Device getDevice() { return device; } + public PushToken setDevice(Device device) { this.device = device; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/SlackOptions.java b/src/main/java/com/notificationapi/model/SlackOptions.java new file mode 100644 index 0000000..d98ae12 --- /dev/null +++ b/src/main/java/com/notificationapi/model/SlackOptions.java @@ -0,0 +1,17 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SlackOptions { + @JsonProperty("text") + private String text; + @JsonProperty("blocks") + private Object blocks; + + public String getText() { return text; } + public SlackOptions setText(String text) { this.text = text; return this; } + public Object getBlocks() { return blocks; } + public SlackOptions setBlocks(Object blocks) { this.blocks = blocks; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/SlackToken.java b/src/main/java/com/notificationapi/model/SlackToken.java new file mode 100644 index 0000000..8398f55 --- /dev/null +++ b/src/main/java/com/notificationapi/model/SlackToken.java @@ -0,0 +1,94 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Map; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SlackToken { + @JsonProperty("access_token") + private String accessToken; + @JsonProperty("app_id") + private String appId; + @JsonProperty("authed_user") + private AuthedUser authedUser; + @JsonProperty("bot_user_id") + private String botUserId; + @JsonProperty("enterprise") + private Enterprise enterprise; + @JsonProperty("error") + private String error; + @JsonProperty("expires_in") + private Integer expiresIn; + @JsonProperty("incoming_webhook") + private IncomingWebhook incomingWebhook; + @JsonProperty("is_enterprise_install") + private Boolean isEnterpriseInstall; + @JsonProperty("needed") + private String needed; + @JsonProperty("ok") + private Boolean ok; + @JsonProperty("provided") + private String provided; + @JsonProperty("refresh_token") + private String refreshToken; + @JsonProperty("scope") + private String scope; + @JsonProperty("team") + private Team team; + @JsonProperty("token_type") + private String tokenType; + @JsonProperty("warning") + private String warning; + + // Getters and setters for all fields + // ... (omitted for brevity, but should be included in the actual file) + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class AuthedUser { + @JsonProperty("access_token") + private String accessToken; + @JsonProperty("expires_in") + private Integer expiresIn; + @JsonProperty("id") + private String id; + @JsonProperty("refresh_token") + private String refreshToken; + @JsonProperty("scope") + private String scope; + @JsonProperty("token_type") + private String tokenType; + // Getters and setters + } + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class Enterprise { + @JsonProperty("id") + private String id; + @JsonProperty("name") + private String name; + // Getters and setters + } + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class IncomingWebhook { + @JsonProperty("channel") + private String channel; + @JsonProperty("channel_id") + private String channelId; + @JsonProperty("configuration_url") + private String configurationUrl; + @JsonProperty("url") + private String url; + // Getters and setters + } + + @JsonInclude(JsonInclude.Include.NON_NULL) + public static class Team { + @JsonProperty("id") + private String id; + @JsonProperty("name") + private String name; + // Getters and setters + } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/SmsOptions.java b/src/main/java/com/notificationapi/model/SmsOptions.java new file mode 100644 index 0000000..948ca52 --- /dev/null +++ b/src/main/java/com/notificationapi/model/SmsOptions.java @@ -0,0 +1,13 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class SmsOptions { + @JsonProperty("message") + private String message; + + public String getMessage() { return message; } + public SmsOptions setMessage(String message) { this.message = message; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/User.java b/src/main/java/com/notificationapi/model/User.java index d0c5adc..5241829 100644 --- a/src/main/java/com/notificationapi/model/User.java +++ b/src/main/java/com/notificationapi/model/User.java @@ -17,6 +17,30 @@ public class User { @JsonProperty("number") private String number; + @JsonProperty("pushTokens") + private java.util.List pushTokens; + + @JsonProperty("webPushTokens") + private java.util.List webPushTokens; + + @JsonProperty("timezone") + private String timezone; + + @JsonProperty("lastSeenTime") + private String lastSeenTime; + + @JsonProperty("slackChannelName") + private String slackChannelName; + + @JsonProperty("slackToken") + private SlackToken slackToken; + + @JsonProperty("updatedAt") + private String updatedAt; + + @JsonProperty("createdAt") + private String createdAt; + /** * Default constructor for User. */ @@ -91,4 +115,28 @@ public User setNumber(String number) { this.number = number; return this; } + + public java.util.List getPushTokens() { return pushTokens; } + public User setPushTokens(java.util.List pushTokens) { this.pushTokens = pushTokens; return this; } + + public java.util.List getWebPushTokens() { return webPushTokens; } + public User setWebPushTokens(java.util.List webPushTokens) { this.webPushTokens = webPushTokens; return this; } + + public String getTimezone() { return timezone; } + public User setTimezone(String timezone) { this.timezone = timezone; return this; } + + public String getLastSeenTime() { return lastSeenTime; } + public User setLastSeenTime(String lastSeenTime) { this.lastSeenTime = lastSeenTime; return this; } + + public String getSlackChannelName() { return slackChannelName; } + public User setSlackChannelName(String slackChannelName) { this.slackChannelName = slackChannelName; return this; } + + public SlackToken getSlackToken() { return slackToken; } + public User setSlackToken(SlackToken slackToken) { this.slackToken = slackToken; return this; } + + public String getUpdatedAt() { return updatedAt; } + public User setUpdatedAt(String updatedAt) { this.updatedAt = updatedAt; return this; } + + public String getCreatedAt() { return createdAt; } + public User setCreatedAt(String createdAt) { this.createdAt = createdAt; return this; } } \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/WebPushOptions.java b/src/main/java/com/notificationapi/model/WebPushOptions.java new file mode 100644 index 0000000..bdfd81f --- /dev/null +++ b/src/main/java/com/notificationapi/model/WebPushOptions.java @@ -0,0 +1,25 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class WebPushOptions { + @JsonProperty("title") + private String title; + @JsonProperty("message") + private String message; + @JsonProperty("icon") + private String icon; + @JsonProperty("url") + private String url; + + public String getTitle() { return title; } + public WebPushOptions setTitle(String title) { this.title = title; return this; } + public String getMessage() { return message; } + public WebPushOptions setMessage(String message) { this.message = message; return this; } + public String getIcon() { return icon; } + public WebPushOptions setIcon(String icon) { this.icon = icon; return this; } + public String getUrl() { return url; } + public WebPushOptions setUrl(String url) { this.url = url; return this; } +} \ No newline at end of file diff --git a/src/main/java/com/notificationapi/model/WebPushToken.java b/src/main/java/com/notificationapi/model/WebPushToken.java new file mode 100644 index 0000000..774788d --- /dev/null +++ b/src/main/java/com/notificationapi/model/WebPushToken.java @@ -0,0 +1,13 @@ +package com.notificationapi.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class WebPushToken { + @JsonProperty("sub") + private PushSubscription sub; + + public PushSubscription getSub() { return sub; } + public WebPushToken setSub(PushSubscription sub) { this.sub = sub; return this; } +} \ No newline at end of file