features-extras.opensocial-payment.jsoncontainer.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of shindig-extras Show documentation
Show all versions of shindig-extras Show documentation
Provides extra, deprecated or extended functionality. The items here have unstable APIs and could change at any time.
/*
* 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.
*/
//TODO - originally done during construction
// For opensocial virtual currency extension.
gadgets.rpc.register('shindig.requestPayment_callback',
JsonRpcContainer.requestPaymentCallback_);
// For opensocial virtual currency extension.
gadgets.rpc.register('shindig.requestPaymentRecords_callback',
JsonRpcContainer.requestPaymentRecordsCallback_);
/**
* For OpenSocial VirtualCurrency Ext.
* The function invokes the whole process of a payment request. It calls the
* payment processor open function in parent container.
*
* @param {opensocial.Payment} payment The Payment object.
* @param {function(opensocial.ResponseItem)=} opt_callback The finishing
* callback function.
* @private
*/
JsonRpcContainer.prototype.requestPayment = function(payment, opt_callback) {
if (!payment) {
if (opt_callback) {
opt_callback(new opensocial.ResponseItem(null, payment,
opensocial.Payment.ResponseCode.MALFORMED_REQUEST,
'Payment object is undefined.'));
}
return;
}
var callbackId = "cId_" + Math.random();
callbackIdStore[callbackId] = opt_callback;
// The rpc target is registered in container payment processor page.
gadgets.rpc.call('..', 'shindig.requestPayment',
null,
callbackId,
payment.toJsonObject());
};
/**
* For OpenSocial VirtualCurrency Ext. The callback function of receives the
* returned results from the parent container.
*
* @param {Object.} paymentJson A jsonpayment object with
* parameters filled.
* @private
*/
JsonRpcContainer.requestPaymentCallback_ = function(callbackId, paymentJson) {
callback = callbackIdStore[callbackId];
if (callback) {
var errorCode = opensocial.Payment.ResponseCode[
paymentJson[opensocial.Payment.Field.RESPONSE_CODE]];
var message = paymentJson[opensocial.Payment.Field.RESPONSE_MESSAGE];
paymentJson[opensocial.Payment.Field.RESPONSE_CODE] = errorCode;
var payment = new JsonPayment(paymentJson, false);
var responseItem = new opensocial.ResponseItem(
null,
payment,
(errorCode == opensocial.Payment.ResponseCode.OK ? null : errorCode),
message);
callback(responseItem);
}
};
/**
* For OpenSocial VirtualCurrency Ext.
* The function invokes the payment records panel in parent container.
*
* @param {function(opensocial.ResponseItem)=} opt_callback The finishing
* callback function.
* @param {Object.=}
* opt_params Additional parameters to pass to the request.
* @private
*/
JsonRpcContainer.prototype.requestPaymentRecords = function(opt_callback, opt_params) {
var callbackId = "cId_" + Math.random();
callbackIdStore[callbackId] = opt_callback;
// The rpc target is registered in container payment records page.
gadgets.rpc.call('..', 'shindig.requestPaymentRecords',
null, callbackId, opt_params);
};
/**
* For OpenSocial VirtualCurrency Ext. The callback function of receives the
* returned results from the parent container.
*
* @param {Object.} opt_resultParams The fields set with
* result parameters.
* @private
*/
JsonRpcContainer.requestPaymentRecordsCallback_ = function(callbackId, recordsJson) {
callback = callbackIdStore[callbackId];
if (callback) {
var errorCode = opensocial.Payment.ResponseCode[
recordsJson[opensocial.Payment.Field.RESPONSE_CODE]];
var message = recordsJson[opensocial.Payment.Field.RESPONSE_MESSAGE];
var records = [];
var payments = recordsJson['payments'];
for (var orderId in payments) {
records.push(new JsonPayment(payments[orderId], false));
}
var responseItem = new opensocial.ResponseItem(
null,
records,
(errorCode == opensocial.Payment.ResponseCode.OK ? null : errorCode), message);
callback(responseItem);
}
};
JsonRpcContainer.prototype.newPayment = function(opt_params) {
return new JsonPayment(opt_params, true);
};
JsonRpcContainer.prototype.newBillingItem = function(opt_params) {
return new JsonBillingItem(opt_params);
};
© 2015 - 2024 Weber Informatics LLC | Privacy Policy