feat(grpc): support category, alert and badge for ios. (#321)

This commit is contained in:
Bo-Yi Wu
2018-01-02 15:53:15 +08:00
committed by GitHub
parent a89d00c934
commit 8faae762fe
7 changed files with 751 additions and 31 deletions

View File

@@ -26,6 +26,13 @@ func main() {
Platform: 2,
Tokens: []string{"1234567890"},
Message: "test message",
Badge: 1,
Category: "test",
Alert: &proto.NotificationRequest_Alert{
Title: "Test Title",
Body: "Test Alert Body",
Subtitle: "Test Alert Sub Title",
},
})
if err != nil {
log.Fatalf("could not greet: %v", err)

View File

@@ -4,6 +4,28 @@
var grpc = require('grpc');
var gorush_pb = require('./gorush_pb.js');
function serialize_proto_HealthCheckRequest(arg) {
if (!(arg instanceof gorush_pb.HealthCheckRequest)) {
throw new Error('Expected argument of type proto.HealthCheckRequest');
}
return new Buffer(arg.serializeBinary());
}
function deserialize_proto_HealthCheckRequest(buffer_arg) {
return gorush_pb.HealthCheckRequest.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_proto_HealthCheckResponse(arg) {
if (!(arg instanceof gorush_pb.HealthCheckResponse)) {
throw new Error('Expected argument of type proto.HealthCheckResponse');
}
return new Buffer(arg.serializeBinary());
}
function deserialize_proto_HealthCheckResponse(buffer_arg) {
return gorush_pb.HealthCheckResponse.deserializeBinary(new Uint8Array(buffer_arg));
}
function serialize_proto_NotificationReply(arg) {
if (!(arg instanceof gorush_pb.NotificationReply)) {
throw new Error('Expected argument of type proto.NotificationReply');
@@ -42,3 +64,18 @@ var GorushService = exports.GorushService = {
};
exports.GorushClient = grpc.makeGenericClientConstructor(GorushService);
var HealthService = exports.HealthService = {
check: {
path: '/proto.Health/Check',
requestStream: false,
responseStream: false,
requestType: gorush_pb.HealthCheckRequest,
responseType: gorush_pb.HealthCheckResponse,
requestSerialize: serialize_proto_HealthCheckRequest,
requestDeserialize: deserialize_proto_HealthCheckRequest,
responseSerialize: serialize_proto_HealthCheckResponse,
responseDeserialize: deserialize_proto_HealthCheckResponse,
},
};
exports.HealthClient = grpc.makeGenericClientConstructor(HealthService);

View File

@@ -9,8 +9,12 @@ var jspb = require('google-protobuf');
var goog = jspb;
var global = Function('return this')();
goog.exportSymbol('proto.proto.HealthCheckRequest', null, global);
goog.exportSymbol('proto.proto.HealthCheckResponse', null, global);
goog.exportSymbol('proto.proto.HealthCheckResponse.ServingStatus', null, global);
goog.exportSymbol('proto.proto.NotificationReply', null, global);
goog.exportSymbol('proto.proto.NotificationRequest', null, global);
goog.exportSymbol('proto.proto.NotificationRequest.Alert', null, global);
/**
* Generated by JsPbCodeGenerator.
@@ -69,7 +73,10 @@ proto.proto.NotificationRequest.toObject = function(includeInstance, msg) {
message: jspb.Message.getFieldWithDefault(msg, 3, ""),
title: jspb.Message.getFieldWithDefault(msg, 4, ""),
topic: jspb.Message.getFieldWithDefault(msg, 5, ""),
key: jspb.Message.getFieldWithDefault(msg, 6, "")
key: jspb.Message.getFieldWithDefault(msg, 6, ""),
badge: jspb.Message.getFieldWithDefault(msg, 7, 0),
category: jspb.Message.getFieldWithDefault(msg, 8, ""),
alert: (f = msg.getAlert()) && proto.proto.NotificationRequest.Alert.toObject(includeInstance, f)
};
if (includeInstance) {
@@ -130,6 +137,19 @@ proto.proto.NotificationRequest.deserializeBinaryFromReader = function(msg, read
var value = /** @type {string} */ (reader.readString());
msg.setKey(value);
break;
case 7:
var value = /** @type {number} */ (reader.readInt32());
msg.setBadge(value);
break;
case 8:
var value = /** @type {string} */ (reader.readString());
msg.setCategory(value);
break;
case 9:
var value = new proto.proto.NotificationRequest.Alert;
reader.readMessage(value,proto.proto.NotificationRequest.Alert.deserializeBinaryFromReader);
msg.setAlert(value);
break;
default:
reader.skipField();
break;
@@ -200,6 +220,222 @@ proto.proto.NotificationRequest.serializeBinaryToWriter = function(message, writ
f
);
}
f = message.getBadge();
if (f !== 0) {
writer.writeInt32(
7,
f
);
}
f = message.getCategory();
if (f.length > 0) {
writer.writeString(
8,
f
);
}
f = message.getAlert();
if (f != null) {
writer.writeMessage(
9,
f,
proto.proto.NotificationRequest.Alert.serializeBinaryToWriter
);
}
};
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.proto.NotificationRequest.Alert = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.proto.NotificationRequest.Alert, jspb.Message);
if (goog.DEBUG && !COMPILED) {
proto.proto.NotificationRequest.Alert.displayName = 'proto.proto.NotificationRequest.Alert';
}
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto suitable for use in Soy templates.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
* @param {boolean=} opt_includeInstance Whether to include the JSPB instance
* for transitional soy proto support: http://goto/soy-param-migration
* @return {!Object}
*/
proto.proto.NotificationRequest.Alert.prototype.toObject = function(opt_includeInstance) {
return proto.proto.NotificationRequest.Alert.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Whether to include the JSPB
* instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.proto.NotificationRequest.Alert} msg The msg instance to transform.
* @return {!Object}
*/
proto.proto.NotificationRequest.Alert.toObject = function(includeInstance, msg) {
var f, obj = {
title: jspb.Message.getFieldWithDefault(msg, 1, ""),
body: jspb.Message.getFieldWithDefault(msg, 2, ""),
subtitle: jspb.Message.getFieldWithDefault(msg, 3, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.proto.NotificationRequest.Alert}
*/
proto.proto.NotificationRequest.Alert.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.proto.NotificationRequest.Alert;
return proto.proto.NotificationRequest.Alert.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.proto.NotificationRequest.Alert} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.proto.NotificationRequest.Alert}
*/
proto.proto.NotificationRequest.Alert.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setTitle(value);
break;
case 2:
var value = /** @type {string} */ (reader.readString());
msg.setBody(value);
break;
case 3:
var value = /** @type {string} */ (reader.readString());
msg.setSubtitle(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.proto.NotificationRequest.Alert.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.proto.NotificationRequest.Alert.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.proto.NotificationRequest.Alert} message
* @param {!jspb.BinaryWriter} writer
*/
proto.proto.NotificationRequest.Alert.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getTitle();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
f = message.getBody();
if (f.length > 0) {
writer.writeString(
2,
f
);
}
f = message.getSubtitle();
if (f.length > 0) {
writer.writeString(
3,
f
);
}
};
/**
* optional string title = 1;
* @return {string}
*/
proto.proto.NotificationRequest.Alert.prototype.getTitle = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/** @param {string} value */
proto.proto.NotificationRequest.Alert.prototype.setTitle = function(value) {
jspb.Message.setField(this, 1, value);
};
/**
* optional string body = 2;
* @return {string}
*/
proto.proto.NotificationRequest.Alert.prototype.getBody = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};
/** @param {string} value */
proto.proto.NotificationRequest.Alert.prototype.setBody = function(value) {
jspb.Message.setField(this, 2, value);
};
/**
* optional string subtitle = 3;
* @return {string}
*/
proto.proto.NotificationRequest.Alert.prototype.getSubtitle = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};
/** @param {string} value */
proto.proto.NotificationRequest.Alert.prototype.setSubtitle = function(value) {
jspb.Message.setField(this, 3, value);
};
@@ -309,6 +545,66 @@ proto.proto.NotificationRequest.prototype.setKey = function(value) {
};
/**
* optional int32 badge = 7;
* @return {number}
*/
proto.proto.NotificationRequest.prototype.getBadge = function() {
return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};
/** @param {number} value */
proto.proto.NotificationRequest.prototype.setBadge = function(value) {
jspb.Message.setField(this, 7, value);
};
/**
* optional string category = 8;
* @return {string}
*/
proto.proto.NotificationRequest.prototype.getCategory = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, ""));
};
/** @param {string} value */
proto.proto.NotificationRequest.prototype.setCategory = function(value) {
jspb.Message.setField(this, 8, value);
};
/**
* optional Alert alert = 9;
* @return {?proto.proto.NotificationRequest.Alert}
*/
proto.proto.NotificationRequest.prototype.getAlert = function() {
return /** @type{?proto.proto.NotificationRequest.Alert} */ (
jspb.Message.getWrapperField(this, proto.proto.NotificationRequest.Alert, 9));
};
/** @param {?proto.proto.NotificationRequest.Alert|undefined} value */
proto.proto.NotificationRequest.prototype.setAlert = function(value) {
jspb.Message.setWrapperField(this, 9, value);
};
proto.proto.NotificationRequest.prototype.clearAlert = function() {
this.setAlert(undefined);
};
/**
* Returns whether this field is set.
* @return {!boolean}
*/
proto.proto.NotificationRequest.prototype.hasAlert = function() {
return jspb.Message.getField(this, 9) != null;
};
/**
* Generated by JsPbCodeGenerator.
@@ -478,4 +774,293 @@ proto.proto.NotificationReply.prototype.setCounts = function(value) {
};
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.proto.HealthCheckRequest = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.proto.HealthCheckRequest, jspb.Message);
if (goog.DEBUG && !COMPILED) {
proto.proto.HealthCheckRequest.displayName = 'proto.proto.HealthCheckRequest';
}
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto suitable for use in Soy templates.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
* @param {boolean=} opt_includeInstance Whether to include the JSPB instance
* for transitional soy proto support: http://goto/soy-param-migration
* @return {!Object}
*/
proto.proto.HealthCheckRequest.prototype.toObject = function(opt_includeInstance) {
return proto.proto.HealthCheckRequest.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Whether to include the JSPB
* instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.proto.HealthCheckRequest} msg The msg instance to transform.
* @return {!Object}
*/
proto.proto.HealthCheckRequest.toObject = function(includeInstance, msg) {
var f, obj = {
service: jspb.Message.getFieldWithDefault(msg, 1, "")
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.proto.HealthCheckRequest}
*/
proto.proto.HealthCheckRequest.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.proto.HealthCheckRequest;
return proto.proto.HealthCheckRequest.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.proto.HealthCheckRequest} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.proto.HealthCheckRequest}
*/
proto.proto.HealthCheckRequest.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {string} */ (reader.readString());
msg.setService(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.proto.HealthCheckRequest.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.proto.HealthCheckRequest.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.proto.HealthCheckRequest} message
* @param {!jspb.BinaryWriter} writer
*/
proto.proto.HealthCheckRequest.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getService();
if (f.length > 0) {
writer.writeString(
1,
f
);
}
};
/**
* optional string service = 1;
* @return {string}
*/
proto.proto.HealthCheckRequest.prototype.getService = function() {
return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};
/** @param {string} value */
proto.proto.HealthCheckRequest.prototype.setService = function(value) {
jspb.Message.setField(this, 1, value);
};
/**
* Generated by JsPbCodeGenerator.
* @param {Array=} opt_data Optional initial data array, typically from a
* server response, or constructed directly in Javascript. The array is used
* in place and becomes part of the constructed object. It is not cloned.
* If no data is provided, the constructed object will be empty, but still
* valid.
* @extends {jspb.Message}
* @constructor
*/
proto.proto.HealthCheckResponse = function(opt_data) {
jspb.Message.initialize(this, opt_data, 0, -1, null, null);
};
goog.inherits(proto.proto.HealthCheckResponse, jspb.Message);
if (goog.DEBUG && !COMPILED) {
proto.proto.HealthCheckResponse.displayName = 'proto.proto.HealthCheckResponse';
}
if (jspb.Message.GENERATE_TO_OBJECT) {
/**
* Creates an object representation of this proto suitable for use in Soy templates.
* Field names that are reserved in JavaScript and will be renamed to pb_name.
* To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
* For the list of reserved names please see:
* com.google.apps.jspb.JsClassTemplate.JS_RESERVED_WORDS.
* @param {boolean=} opt_includeInstance Whether to include the JSPB instance
* for transitional soy proto support: http://goto/soy-param-migration
* @return {!Object}
*/
proto.proto.HealthCheckResponse.prototype.toObject = function(opt_includeInstance) {
return proto.proto.HealthCheckResponse.toObject(opt_includeInstance, this);
};
/**
* Static version of the {@see toObject} method.
* @param {boolean|undefined} includeInstance Whether to include the JSPB
* instance for transitional soy proto support:
* http://goto/soy-param-migration
* @param {!proto.proto.HealthCheckResponse} msg The msg instance to transform.
* @return {!Object}
*/
proto.proto.HealthCheckResponse.toObject = function(includeInstance, msg) {
var f, obj = {
status: jspb.Message.getFieldWithDefault(msg, 1, 0)
};
if (includeInstance) {
obj.$jspbMessageInstance = msg;
}
return obj;
};
}
/**
* Deserializes binary data (in protobuf wire format).
* @param {jspb.ByteSource} bytes The bytes to deserialize.
* @return {!proto.proto.HealthCheckResponse}
*/
proto.proto.HealthCheckResponse.deserializeBinary = function(bytes) {
var reader = new jspb.BinaryReader(bytes);
var msg = new proto.proto.HealthCheckResponse;
return proto.proto.HealthCheckResponse.deserializeBinaryFromReader(msg, reader);
};
/**
* Deserializes binary data (in protobuf wire format) from the
* given reader into the given message object.
* @param {!proto.proto.HealthCheckResponse} msg The message object to deserialize into.
* @param {!jspb.BinaryReader} reader The BinaryReader to use.
* @return {!proto.proto.HealthCheckResponse}
*/
proto.proto.HealthCheckResponse.deserializeBinaryFromReader = function(msg, reader) {
while (reader.nextField()) {
if (reader.isEndGroup()) {
break;
}
var field = reader.getFieldNumber();
switch (field) {
case 1:
var value = /** @type {!proto.proto.HealthCheckResponse.ServingStatus} */ (reader.readEnum());
msg.setStatus(value);
break;
default:
reader.skipField();
break;
}
}
return msg;
};
/**
* Serializes the message to binary data (in protobuf wire format).
* @return {!Uint8Array}
*/
proto.proto.HealthCheckResponse.prototype.serializeBinary = function() {
var writer = new jspb.BinaryWriter();
proto.proto.HealthCheckResponse.serializeBinaryToWriter(this, writer);
return writer.getResultBuffer();
};
/**
* Serializes the given message to binary data (in protobuf wire
* format), writing to the given BinaryWriter.
* @param {!proto.proto.HealthCheckResponse} message
* @param {!jspb.BinaryWriter} writer
*/
proto.proto.HealthCheckResponse.serializeBinaryToWriter = function(message, writer) {
var f = undefined;
f = message.getStatus();
if (f !== 0.0) {
writer.writeEnum(
1,
f
);
}
};
/**
* @enum {number}
*/
proto.proto.HealthCheckResponse.ServingStatus = {
UNKNOWN: 0,
SERVING: 1,
NOT_SERVING: 2
};
/**
* optional ServingStatus status = 1;
* @return {!proto.proto.HealthCheckResponse.ServingStatus}
*/
proto.proto.HealthCheckResponse.prototype.getStatus = function() {
return /** @type {!proto.proto.HealthCheckResponse.ServingStatus} */ (jspb.Message.getFieldWithDefault(this, 1, 0));
};
/** @param {!proto.proto.HealthCheckResponse.ServingStatus} value */
proto.proto.HealthCheckResponse.prototype.setStatus = function(value) {
jspb.Message.setField(this, 1, value);
};
goog.object.extend(exports, proto.proto);