Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import ApiService from '@/services/api.service';
  2.  
  3.  
  4. class TransferService {
  5.  
  6.   /**
  7.    * Create Transfer
  8.    **/
  9.   createTransfer (data) {
  10.     /**
  11.      *  Args
  12.      *    [from_entity_id] (str): id of entity record from which
  13.      *      the transfer goes
  14.      *    [to_entity_id] (str): id of entity record from which the
  15.      *      transfer goes
  16.      *    date (timestamp): datetime of transfer
  17.      *    group (str): one of ['deposit', 'withdrawal', 'fee_withdrawal']
  18.      *    type (str): if group deposit or withdrawal one of ['standard',
  19.      *      'management'], fee type name if fee_withdrawal
  20.      *    amount (float): THE amount
  21.      *    unit (str): 'currency' or 'series'
  22.      *    unit_id (str): id of either currency or series
  23.      **/
  24.     try {
  25.       return ApiService.post(`/api/v1/transfers`, data);
  26.     } catch (error) {
  27.       throw new Error(error);
  28.     }
  29.   }
  30.  
  31.   /**
  32.    * Update Transfer
  33.    **/
  34.   updateTransfer (transfer_id, data) {
  35.     /**
  36.      *  Args
  37.      *    transfer_id (str): id of transfer
  38.      *    [from_entity_id] (str): id of entity record from which
  39.      *      the transfer goes
  40.      *    [to_entity_id] (str): id of entity record from which the
  41.      *      transfer goes
  42.      *    [date] (timestamp): datetime of transfer
  43.      *    [group] (str): one of ['deposit', 'withdrawal', 'fee_withdrawal']
  44.      *    [type] (str): if group deposit or withdrawal one of ['standard',
  45.      *      'management'], fee type name if fee_withdrawal
  46.      *    [amount] (float): THE amount
  47.      *    [unit] (str): 'currency' or 'series'
  48.      *    [unit_id] (str): id of either currency or series
  49.      **/
  50.     try {
  51.       return ApiService.put(`/api/v1/transfers/${transfer_id}`, data);
  52.     } catch (error) {
  53.       throw new Error(error);
  54.     }
  55.   }
  56.  
  57.   /**
  58.    * Delete Transfer
  59.    **/
  60.   deleteTransfer (transfer_id) {
  61.     /**
  62.      *  Args
  63.      *    transfer_id (str): id of transfer
  64.      **/
  65.     try {
  66.       return ApiService.delete(`/api/v1/transfers/${transfer_id}`, data);
  67.     } catch (error) {
  68.       throw new Error(error);
  69.     }
  70.   }
  71.  
  72.   /**
  73.    * Get transfers by type
  74.    * Args:
  75.    *   [filters] (obj): can contain any of these - group (array or str),
  76.    *     type (array or str), date_from (timestamp), date_to (timestamp),
  77.    *     from_entity_id (array or str), to_entity_id (array or str)
  78.    *   [aggr_params] (obj): any parameters needed for aggregation
  79.    *   [aggr_name] (str): name of aggregation
  80.    **/
  81.   getTransfer (filters, aggr_params, aggr_name) {
  82.     const body = {};
  83.     const body_filters = [];
  84.     let url = `/api/v1/transfer/search`;
  85.  
  86.     for (var filter in filters) {
  87.       if ( filters.hasOwnProperty(filter) ) {
  88.         body_filters.push(this.setFilter(filter, filters));
  89.       }
  90.     }
  91.  
  92.     if (body_filters.length != 0) {
  93.       body.filters = body_filters;
  94.     }
  95.  
  96.     if (aggr_name !== null) {
  97.       body.aggr = aggr_params;
  98.       url += `/${aggr_name}`;
  99.     }
  100.  
  101.     try {
  102.       return ApiService.post(url, body);
  103.     } catch (error) {
  104.       throw new Error(error);
  105.     }
  106.  
  107.   }
  108.  
  109.   setFilter (filter, filters) {
  110.  
  111.     // return results before
  112.     if (filter == 'date_to') {
  113.       return {
  114.         column: 'date',
  115.         relations: 'lte',
  116.         value: filters[filter],
  117.       };
  118.     }
  119.  
  120.     // return results after
  121.     if (filter == 'date_from') {
  122.       return {
  123.         column: 'date',
  124.         relations: 'gte',
  125.         value: filters[filter],
  126.       };
  127.     }
  128.  
  129.     if ( Array.isArray(filters[filter]) ) {
  130.       return {
  131.         column: filter,
  132.         relations: 'in',
  133.         value: filters[filter],
  134.       };
  135.     }
  136.  
  137.     return {
  138.         column: filter,
  139.         relations: 'eq',
  140.         value: filters[filter],
  141.       };
  142.   }
  143. }
  144.  
  145.  
  146. export default TransferService;
  147.  
  148.  
  149. export {
  150.   TransferService,
  151. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement