Hi, I am very new to protobuf most especially using GRPC i have a bit of an issue with code generation of a proto message. Before I took on the project everything works but immediately i add some lines and generate, all my implementations seem not to work. Below are the files am working with and the error that I am receiving. Help from anywhere will save me a lot.
This part of the code is what seems to be the problem.
var createOrder = function (request, response) {
sess = request.session;
console.log(sess, request.cookies);
request.checkBody('payment_method', 'Invalid Payment Method').notEmpty();
request.checkBody('delivery', 'Invalid Delivery Address').notEmpty();
var errors = request.validationErrors();
if (errors) {
response
.status(200)
.json(responder.errorResponse("Invalid Param", errors))
.end();
return;
}
if (!validator.validPayment(request.body.payment_method, request.body.transaction_id)) {
response
.status(200)
.json(responder.errorResponse("Invalid Param"))
.end();
return;
}
var clearCartItems = function () {
request.session.cart = {
items: [],
complete: false
}
}
// add order info
var orderRequest = new orderMessages.Order();
userId = request.session.userId;
orderRequest.setUserId(userId);
orderRequest.setUnderReview(true);
orderRequest.setFulfillmentStatus(0);
//add Tax
var taxRequest = new orderMessages.Tax();
tax = priceCal.getTax(request.session.cart.items || []);
taxRequest.setInternationalShipping(tax.int_shipping.toString());
taxRequest.setCustomDuties(tax.custom_duties.toString());
taxRequest.setAhonyaFees(tax.ahonya_fees.toString());
taxRequest.setCurrencyRate(tax.currency_rate.toString());
orderRequest.setTax(taxRequest);
//add Payment
var payRequest = new orderMessages.Payment();
payRequest.setPaymentMethod(request.body.payment_method);
payRequest.setTransactionId(request.body.transaction_id || String());
orderRequest.setPayment(payRequest);
//add items
orderItems = [];
for (item in request.session.cart.items || []) {
product = request.session.cart.items[item];
var itemRequest = new orderMessages.OrderItem();
itemRequest.setProductName(product.product_name);
itemRequest.setUnitPrice(product.unit_price.toString());
itemRequest.setQuantity(product.quantity);
itemRequest.setProductImage(product.product_image);
itemRequest.setFulfilmentStatus("new");
itemRequest.setIsPrime(product.is_prime);
itemRequest.setWeight(product.weight.toString());
itemRequest.setAsin(product.asin);
itemRequest.setAmazonItemid(product.itemid);
itemRequest.setDomesticShipping(0.0);
orderItems.push(itemRequest);
}
orderRequest.setItemsList(orderItems);
// add delivery address
var addrRequest = new orderMessages.DeliveryAddress();
addrRequest.setAddressId(request.body.delivery.addressId);
addrRequest.setName(request.body.delivery.name);
addrRequest.setPhoneNo(request.body.delivery.phoneNo);
addrRequest.setStreetAddress(request.body.delivery.streetAddress);
addrRequest.setRegion(request.body.delivery.region);
addrRequest.setCountry(request.body.delivery.country);
orderRequest.setDeliveryAddress(addrRequest);
orderClient.createOrder(orderRequest, function (err, orderReply) {
if ((!err) && (orderReply.getResponse())) {
clearCartItems();
response
.json(responder.successResponse("ok"))
.end();
return;
} else {
response
.json(responder.errorResponse("Ops"))
.end();
return;
}
});
};
TypeError: message.serializeBinaryToWriter is not a function
at proto.DeliveryAddress.serializeBinaryToWriter (/Volumes/Data HD/Ahonya/node/web-ahonya/services/account_pb.js:1008:11)
at jspb.BinaryWriter.writeMessage (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/google-protobuf/google-protobuf.js:292:342)
at Function.proto.Order.serializeBinaryToWriter (/Volumes/Data HD/Ahonya/node/web-ahonya/services/order_pb.js:1940:12)
at proto.Order.serializeBinary (/Volumes/Data HD/Ahonya/node/web-ahonya/services/order_pb.js:1867:15)
at serialize_Order (/Volumes/Data HD/Ahonya/node/web-ahonya/services/order_grpc_pb.js:11:25)
at ServiceClient.Client.makeUnaryRequest (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/grpc/src/node/src/client.js:530:17)
at apply (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/lodash/lodash.js:499:17)
at ServiceClient.wrapper [as createOrder] (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/lodash/lodash.js:5356:16)
at createOrder (/Volumes/Data HD/Ahonya/node/web-ahonya/controllers/api_order.js:162:17)
at Layer.handle [as handle_request] (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/express/lib/router/layer.js:95:5)
at next (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/express/lib/router/layer.js:95:5)
at /Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/express/lib/router/index.js:335:12)
at next (/Volumes/Data HD/Ahonya/node/web-ahonya/node_modules/express/lib/router/index.js:275:10)
Hi, I am very new to protobuf most especially using GRPC i have a bit of an issue with code generation of a proto message. Before I took on the project everything works but immediately i add some lines and generate, all my implementations seem not to work. Below are the files am working with and the error that I am receiving. Help from anywhere will save me a lot.
This part of the code is what seems to be the problem.
Below is my proto file definition:
This is the error it producesses