-
Notifications
You must be signed in to change notification settings - Fork 0
/
Get.js
62 lines (52 loc) · 1.37 KB
/
Get.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
/**
* Generates the SOQL query to send to Salesforce
*
* @param {QueryParameters} queryParameters an object specifying query parameters
* must at least specify the SELECT and FROM clauses
* @return {obj} the queried data from Salesforce
*/
const get = (queryParameters, apiVersion) => {
return fetch_({ method: METHODS.GET, queryParameters: queryParameters, apiVersion: apiVersion });
}
Object.defineProperty(this, 'get', {value: get, enumerable : true});
// ['SELECT', 'FROM', 'WHERE', 'GROUP BY', 'ORDER BY', 'LIMIT', 'OFFSET', 'HAVING']
// A base class is defined using the new reserved 'class' keyword
class QueryParameters {
constructor() {
this.select = 'Id, Name';
this.from = 'Opportunity';
}
setSelect(select) {
this.select = select;
return this;
}
setFrom(from) {
this.from = from;
return this;
}
setWhere(where) {
this.where = where;
return this;
}
setGroupBy(groupBy) {
this.groupBy = groupBy;
return this;
}
setOrderBy(orderBy) {
this.orderBy = orderBy;
return this;
}
setLimit(limit) {
this.limit = limit;
return this;
}
setOffset(offset) {
this.offset = offset;
return this;
}
setHaving(having) {
this.having = having;
return this;
}
}
Object.defineProperty(this, 'QueryParameters', {value: QueryParameters, enumerable : true});