-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
83 lines (69 loc) · 2.47 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
'use strict';
var util = require('util');
var wrapi = require('wrapi');
var otherEndpoints = {
merchant: require('./api/merchant.json'),
business: require('./api/business.json')
};
var meEndpoints = {
employees: require('./api/me/employees.json'),
roles: require('./api/me/roles.json'),
timecards: require('./api/me/timecards.json')
};
var locationEndpoints = {
// Business Management - https://docs.connect.squareup.com/api/connect/v1/#navsection-business
cashDrawerShifts: require('./api/cash-drawer-shifts.json'),
// Transaction Management - https://docs.connect.squareup.com/api/connect/v1/#navsection-transactions
payments: require('./api/payments.json'),
settlements: require('./api/settlements.json'),
refunds: require('./api/refunds.json'),
orders: require('./api/orders.json'),
bankAccounts: require('./api/bank-accounts.json'),
// Item Management - https://docs.connect.squareup.com/api/connect/v1/#navsection-itemmanagement
items: require('./api/items.json'),
variations: require('./api/variations.json'),
inventory: require('./api/inventory.json'),
modifierLists: require('./api/modifier-lists.json'),
modifierOptions: require('./api/modifier-options.json'),
categories: require('./api/categories.json'),
discounts: require('./api/discounts.json'),
fees: require('./api/fees.json'),
pages: require('./api/pages.json'),
cells: require('./api/cells.json')
};
function squareWrapi(apiVersion, access_token, location_id) {
var opts = {
auth: {
"bearer": access_token
},
headers: {
"User-Agent": 'square-wrapi',
"Accept": 'application/json'
}
};
var all = {};
for (var name in meEndpoints) {
for (var sub in meEndpoints[name]) {
meEndpoints[name][sub].path = 'me/' + meEndpoints[name][sub].path;
all[name + '.' + sub] = meEndpoints[name][sub];
}
}
var pathPrefix = location_id || ':location_id';
for (var name in locationEndpoints) {
for (var sub in locationEndpoints[name]) {
locationEndpoints[name][sub].path = pathPrefix + '/' + locationEndpoints[name][sub].path;
all[name + '.' + sub] = locationEndpoints[name][sub];
}
}
for (var name in otherEndpoints) {
for (var sub in otherEndpoints[name]) {
all[name + '.' + sub] = otherEndpoints[name][sub];
}
}
squareWrapi.super_.call(this,
'https://connect.squareup.com/' + apiVersion + '/',
all,
opts);
};
util.inherits(squareWrapi, wrapi);
module.exports = squareWrapi;