All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.starkinfra.IssuingRule Maven / Gradle / Ivy

Go to download

Welcome to the Stark Infra Java SDK! This tool is made for Java developers who want to easily integrate with our API. This SDK version is compatible with the Stark Infra API v2.

There is a newer version: 0.11.2
Show newest version
package com.starkinfra;

import com.starkinfra.utils.Resource;

import java.util.Map;
import java.util.List;
import java.util.HashMap;
import java.util.ArrayList;


public final class IssuingRule extends Resource {

    /**
     * IssuingRule object
     * 

* The IssuingRule object displays the spending rules of IssuingCards and IssuingHolders created in your Workspace. *

* Parameters: * name [string]: rule name. ex: "Travel" or "Food" * amount [Long]: maximum amount that can be spent in the informed interval. ex: 200000 (= R$ 2000.00) * id [string, default null]: unique id returned when an IssuingRule is created, used to update a specific IssuingRule. ex: "5656565656565656" * interval [string]: interval after which the rule amount counter will be reset to 0. ex: "instant", "day", "week", "month", "year" or "lifetime" * currencyCode [string, default "BRL"]: code of the currency that the rule amount refers to. ex: "BRL" or "USD" * categories [list of MerchantCategory objects, default []]: merchant categories accepted by the rule. ex: ["eatingPlacesRestaurants", "travelAgenciesTourOperators"] * countries [list of MerchantCountry objects, default []]: countries accepted by the rule. ex: ["BRA", "USA"] * methods [list of CardMethod objects, default []]: card purchase methods accepted by the rule. ex: ["contactless", "manual"] * counterAmount [Long]: current rule spent amount. ex: 1000 * currencySymbol [string]: currency symbol. ex: "R$" * currencyName [string]: currency name. ex: "Brazilian Real" * */ static ClassData data = new ClassData(IssuingRule.class, "IssuingRule"); public String name; public Long amount; public String interval; public String currencyCode; public List categories; public List countries; public List methods; public Number counterAmount; public String currencySymbol; public String currencyName; /** * IssuingRule object *

* The IssuingRule object displays the spending rules of IssuingCards and IssuingHolders created in your Workspace. *

* Parameters: * @param name [string]: rule name. ex: "Travel" or "Food" * @param amount [Long]: maximum amount that can be spent in the informed interval. ex: 200000 (= R$ 2000.00) * @param interval [string]: interval after which the rule amount counter will be reset to 0. ex: "instant", "day", "week", "month", "year" or "lifetime" * @param id [string]: unique id returned when an IssuingRule is created, used to update a specific IssuingRule. ex: "5656565656565656" * @param currencyCode [string, default "BRL"]: code of the currency that the rule amount refers to. ex: "BRL" or "USD" * @param categories [list of MerchantCategory objects, default []]: merchant categories accepted by the rule. ex: ["eatingPlacesRestaurants", "travelAgenciesTourOperators"] * @param countries [list of MerchantCountry objects, default []]: countries accepted by the rule. ex: ["BRA", "USA"] * @param methods [list of CardMethod objects, default []]: card purchase methods accepted by the rule. ex: ["contactless", "manual"] * @param counterAmount [Long]: current rule spent amount. ex: 1000 * @param currencySymbol [string]: currency symbol. ex: "R$" * @param currencyName [string]: currency name. ex: "Brazilian Real" */ public IssuingRule(String id, String name, Long amount, String interval, String currencyCode, List categories, List countries, List methods, Long counterAmount, String currencySymbol, String currencyName ) { super(id); this.name = name; this.amount = amount; this.interval = interval; this.currencyCode = currencyCode; this.categories = categories; this.countries = countries; this.methods = methods; this.counterAmount = counterAmount; this.currencySymbol = currencySymbol; this.currencyName = currencyName; } /** * IssuingRule object *

* The IssuingRule object displays the spending rules of IssuingCards and IssuingHolders created in your Workspace. *

* Parameters (required): * @param data map of properties for the creation of the IssuingRule * name [string]: rule name. ex: "Travel" or "Food" * amount [Long]: maximum amount that can be spent in the informed interval. ex: 200000 (= R$ 2000.00) *

* Parameters (optional): * id [string, default null]: unique id returned when an IssuingRule is created, used to update a specific IssuingRule. ex: "5656565656565656" * interval [string, default "lifetime"]: interval after which the rule amount counter will be reset to 0. ex: "instant", "day", "week", "month", "year" or "lifetime" * currencyCode [string, default "BRL"]: code of the currency that the rule amount refers to. ex: "BRL" or "USD" * categories [list of MerchantCategory objects, default []]: merchant categories accepted by the rule. ex: ["eatingPlacesRestaurants", "travelAgenciesTourOperators"] * countries [list of MerchantCountry objects, default []]: countries accepted by the rule. ex: ["BRA", "USA"] * methods [list of CardMethod objects, default []]: card purchase methods accepted by the rule. ex: ["contactless", "manual"] *

* Attributes (expanded return-only): * counterAmount [Long]: current rule spent amount. ex: 1000 * currencySymbol [string]: currency symbol. ex: "R$" * currencyName [string]: currency name. ex: "Brazilian Real" * @throws Exception error in the request */ public IssuingRule(Map data) throws Exception { super(null); HashMap dataCopy = new HashMap<>(data); this.name = (String) dataCopy.remove("name"); this.amount = ((Number) dataCopy.remove("amount")).longValue(); this.interval = (String) dataCopy.remove("interval"); this.currencyCode = (String) dataCopy.remove("currencyCode"); this.categories = (List) dataCopy.remove("categories"); this.countries = (List) dataCopy.remove("countries"); this.methods = (List)dataCopy.remove("methods"); this.counterAmount = null; this.currencySymbol = null; this.currencyName = null; if (!dataCopy.isEmpty()) { throw new Exception("Unknown parameters used in constructor: [" + String.join(", ", dataCopy.keySet()) + "]"); } } @SuppressWarnings("unchecked") static List parseRules(List rules) throws Exception { if (rules == null) return null; List parsed = new ArrayList<>(); if (rules.size() == 0 || rules.get(0) instanceof IssuingRule) { for (Object rule : rules) { parsed.add((IssuingRule) rule); } return parsed; } for (Object rule : rules) { IssuingRule ruleObject = new IssuingRule((Map) rule); parsed.add(ruleObject); } return parsed; } }