starkbank
Version:
SDK to facilitate Node integrations with Stark Bank
61 lines (55 loc) • 3.6 kB
JavaScript
const Resource = require('starkcore').Resource;
const {CardMethod} = require('../cardMethod/cardMethod.js');
const {MerchantCategory} = require('../merchantCategory/merchantCategory.js')
const {MerchantCountry} = require('../merchantCountry/merchantCountry.js')
const cardMethodResource = require('../cardMethod/cardMethod.js').resource;
const merchantCountryResource = require('../merchantCountry/merchantCountry.js').resource;
const merchantCategoryResource = require('../merchantCategory/merchantCategory.js').resource;
const parseObjects = require('../utils/parse.js').parseObjects;
class CorporateRule extends Resource {
/**
*
* CorporateRule object
*
* @descrption The CorporateRule object displays the spending rules of CorporateCards and CorporateHolders created in your Workspace.
*
* Parameters (required):
* @param name [string]: rule name. ex: "Travel" or "Food"
* @param amount [integer]: maximum amount that can be spent in the informed interval. ex: 200000 (= R$ 2000.00)
*
* Parameters (optional):
* @param interval [string, default "lifetime"]: interval after which the rule amount counter will be reset to 0. ex: "instant", "day", "week", "month", "year" or "lifetime"
* @param schedule [string, default null]: schedule time for user to spend. ex: "every monday, wednesday from 00:00 to 23:59 in America/Sao_Paulo"
* @param purposes [list of string, default []]: list of strings representing the allowed purposes for card purchases, you can use this to restrict ATM withdrawals. ex: ["purchase", "withdrawal"]
* @param currencyCode [string, default "BRL"]: code of the currency that the rule amount refers to. ex: "BRL" or "USD"
* @param categories [list of MerchantCategories, default []]: merchant categories accepted by the rule. ex: [MerchantCategory(code="fastFoodRestaurants")]
* @param countries [list of MerchantCountries, default []]: countries accepted by the rule. ex: [MerchantCountry(code="BRA")]
* @param methods [list of CardMethods, default []]: card purchase methods accepted by the rule. ex: [CardMethod(code="magstripe")]
* @param Attributes (expanded return-only):
* @param id [string]: unique id returned when a CorporateRule is created, used to update a specific CorporateRule. ex: "5656565656565656"
* @param counterAmount [integer]: current rule spent amount. ex: 1000
* @param currencySymbol [string]: currency symbol. ex: "R$"
* @param currencyName [string]: currency name. ex: "Brazilian Real"
*/
constructor({
name, amount, id = null, interval = null, schedule = null, purposes = null, currencyCode = null,
categories = null, countries = null, methods= null, counterAmount = null, currencySymbol = null,
currencyName = null
}) {
super(id);
this.name = name;
this.amount = amount;
this.interval = interval;
this.schedule = schedule;
this.purposes = purposes;
this.currencyCode = currencyCode;
this.categories = parseObjects(categories, merchantCategoryResource, MerchantCategory);
this.countries = parseObjects(countries, merchantCountryResource, MerchantCountry);
this.methods = parseObjects(methods, cardMethodResource, CardMethod);
this.counterAmount = counterAmount;
this.currencySymbol = currencySymbol;
this.currencyName = currencyName;
}
}
exports.CorporateRule = CorporateRule;
exports.resource = {'class': exports.CorporateRule, 'name': 'CorporateRule'};