transbank-sdk
Version:
Transbank SDK for Node.js
94 lines (93 loc) • 4.91 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var base_transaction_1 = __importDefault(require("../../common/base_transaction"));
var options_1 = __importDefault(require("../../common/options"));
var requests_1 = require("./requests");
var request_service_1 = __importDefault(require("../../common/request_service"));
var validation_util_1 = __importDefault(require("../../common/validation_util"));
var api_constants_1 = __importDefault(require("../../common/api_constants"));
var environment_1 = __importDefault(require("../common/environment"));
var MallInscription = /** @class */ (function (_super) {
__extends(MallInscription, _super);
/**
* Constructor class MallInscription Oneclick.
* @param options You can pass options to use a custom configuration.
*/
function MallInscription(options) {
return _super.call(this, options) || this;
}
/**
* Creates and returns an instance of `MallInscription` configured for the integration environment.
*
* @param commerceCode The commerce code.
* @param apiKey The API key used for authentication.
* @return A new instance of `MallInscription` configured for the test environment (Environment.Integration).
*/
MallInscription.buildForIntegration = function (commerceCode, apiKey) {
return new MallInscription(new options_1.default(commerceCode, apiKey, environment_1.default.Integration));
};
/**
* Creates and returns an instance of `MallInscription` configured for the production environment.
*
* @param commerceCode The commerce code.
* @param apiKey The API key used for authentication.
* @return A new instance of `MallInscription` configured for the production environment (Environment.Production).
*/
MallInscription.buildForProduction = function (commerceCode, apiKey) {
return new MallInscription(new options_1.default(commerceCode, apiKey, environment_1.default.Production));
};
/**
* Starts a card inscription process
* @param username Cardholder's username
* @param email Cardholder's email
* @param responseUrl URL to which Transbank will redirect after cardholder finish enrolling
* their card
*/
MallInscription.prototype.start = function (username, email, responseUrl) {
validation_util_1.default.hasTextTrimWithMaxLength(username, api_constants_1.default.USER_NAME_LENGTH, "username");
validation_util_1.default.hasTextTrimWithMaxLength(email, api_constants_1.default.EMAIL_LENGTH, "email");
validation_util_1.default.hasTextWithMaxLength(responseUrl, api_constants_1.default.RETURN_URL_LENGTH, "responseUrl");
var startRequest = new requests_1.StartRequest(username, email, responseUrl);
return request_service_1.default.perform(startRequest, this.options);
};
/**
* This finalizes the card enrolling process
* @param token Unique inscription identifier
*/
MallInscription.prototype.finish = function (token) {
validation_util_1.default.hasTextWithMaxLength(token, api_constants_1.default.TOKEN_LENGTH, "token");
return request_service_1.default.perform(new requests_1.FinishRequest(token), this.options);
};
/**
* This deletes an inscription
* @param tbkUser Cardholder's card TBK user assigned by Transbank and returned in
* Inscription.finish
* @param username Cardholder's username
*/
MallInscription.prototype.delete = function (tbkUser, username) {
validation_util_1.default.hasTextTrimWithMaxLength(username, api_constants_1.default.USER_NAME_LENGTH, "username");
validation_util_1.default.hasTextWithMaxLength(tbkUser, api_constants_1.default.TBK_USER_LENGTH, "tbkUser");
return request_service_1.default.perform(new requests_1.DeleteRequest(tbkUser, username), this.options);
};
return MallInscription;
}(base_transaction_1.default));
;
exports.default = MallInscription;