Github user avikganguly01 commented on a diff in the pull request:
https://github.com/apache/fineract/pull/419#discussion_r147701657
--- Diff:
fineract-provider/src/main/java/org/apache/fineract/infrastructure/gcm/GcmConstants.java
---
@@ -0,0 +1,309 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.fineract.infrastructure.gcm;
+
+/**
+ * Constants used on GCM service communication.
+ */
+public final class GcmConstants {
+
+
+ /**
+ * Title for notification
+ */
+ public static final String title = "Hello !";
+
+ /**
+ * icon for notification.
+ */
+ public static final String defaultIcon = "default";
+
+
+ /**
+ * Parameter for to field.
+ */
+ public static final String PARAM_TO = "to";
+
+ /**
+ * Prefix of the topic.
+ */
+ public static final String TOPIC_PREFIX = "/topics/";
+
+ /**
+ * HTTP parameter for registration id.
+ */
+ public static final String PARAM_REGISTRATION_ID = "registration_id";
+
+ /**
+ * HTTP parameter for collapse key.
+ */
+ public static final String PARAM_COLLAPSE_KEY = "collapse_key";
+
+ /**
+ * HTTP parameter for delaying the message delivery if the device is
idle.
+ */
+ public static final String PARAM_DELAY_WHILE_IDLE = "delay_while_idle";
+
+ /**
+ * HTTP parameter for telling gcm to validate the message without
actually
+ * sending it.
+ */
+ public static final String PARAM_DRY_RUN = "dry_run";
+
+ /**
+ * HTTP parameter for package name that can be used to restrict message
+ * delivery by matching against the package name used to generate the
+ * registration id.
+ */
+ public static final String PARAM_RESTRICTED_PACKAGE_NAME =
"restricted_package_name";
+
+ /**
+ * Prefix to HTTP parameter used to pass key-values in the message
payload.
+ */
+ public static final String PARAM_PAYLOAD_PREFIX = "data.";
+
+ /**
+ * Parameter used to set the message time-to-live.
+ */
+ public static final String PARAM_TIME_TO_LIVE = "time_to_live";
+
+ /**
+ * Parameter used to set the message priority.
+ */
+ public static final String PARAM_PRIORITY = "priority";
+
+ /**
+ * Parameter used to set the content available (iOS only)
+ */
+ public static final String PARAM_CONTENT_AVAILABLE =
"content_available";
+
+ /**
+ * Value used to set message priority to normal.
+ */
+ public static final String MESSAGE_PRIORITY_NORMAL = "normal";
+
+ /**
+ * Value used to set message priority to high.
+ */
+ public static final String MESSAGE_PRIORITY_HIGH = "high";
+
+ /**
+ * Too many messages sent by the sender. Retry after a while.
+ */
+ public static final String ERROR_QUOTA_EXCEEDED = "QuotaExceeded";
+
+ /**
+ * Too many messages sent by the sender to a specific device. Retry
after a
+ * while.
+ */
+ public static final String ERROR_DEVICE_QUOTA_EXCEEDED =
"DeviceQuotaExceeded";
+
+ /**
+ * Missing registration_id. Sender should always add the
registration_id to
+ * the request.
+ */
+ public static final String ERROR_MISSING_REGISTRATION =
"MissingRegistration";
+
+ /**
+ * Bad registration_id. Sender should remove this registration_id.
+ */
+ public static final String ERROR_INVALID_REGISTRATION =
"InvalidRegistration";
+
+ /**
+ * The sender_id contained in the registration_id does not match the
+ * sender_id used to register with the GCM servers.
+ */
+ public static final String ERROR_MISMATCH_SENDER_ID =
"MismatchSenderId";
+
+ /**
+ * The user has uninstalled the application or turned off notifications.
+ * Sender should stop sending messages to this device and delete the
+ * registration_id. The client needs to re-register with the GCM
servers to
+ * receive notifications again.
+ */
+ public static final String ERROR_NOT_REGISTERED = "NotRegistered";
+
+ /**
+ * The payload of the message is too big, see the limitations. Reduce
the
+ * size of the message.
+ */
+ public static final String ERROR_MESSAGE_TOO_BIG = "MessageTooBig";
+
+ /**
+ * Collapse key is required. Include collapse key in the request.
+ */
+ public static final String ERROR_MISSING_COLLAPSE_KEY =
"MissingCollapseKey";
+
+ /**
+ * A particular message could not be sent because the GCM servers were
not
+ * available. Used only on JSON requests, as in plain text requests
+ * unavailability is indicated by a 503 response.
+ */
+ public static final String ERROR_UNAVAILABLE = "Unavailable";
+
+ /**
+ * A particular message could not be sent because the GCM servers
+ * encountered an error. Used only on JSON requests, as in plain text
+ * requests internal errors are indicated by a 500 response.
+ */
+ public static final String ERROR_INTERNAL_SERVER_ERROR =
"InternalServerError";
+
--- End diff --
It is a good idea to tie retry logic to such error codes.
---