lesgo 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -39,22 +39,17 @@ class ElasticsearchService {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
search(body) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
this.result = response;
|
|
55
|
-
|
|
56
|
-
resolve(response);
|
|
57
|
-
});
|
|
42
|
+
const param = {
|
|
43
|
+
index: this.index,
|
|
44
|
+
type: this.type,
|
|
45
|
+
body,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
return this.client.search(param, (err, response) => {
|
|
49
|
+
if (err) return Promise.reject(err);
|
|
50
|
+
|
|
51
|
+
this.result = response;
|
|
52
|
+
return Promise.resolve(response);
|
|
58
53
|
});
|
|
59
54
|
}
|
|
60
55
|
|
|
@@ -75,11 +70,9 @@ class ElasticsearchService {
|
|
|
75
70
|
body: settings,
|
|
76
71
|
};
|
|
77
72
|
|
|
78
|
-
return
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
err ? /* istanbul ignore next */ reject(err) : resolve(response);
|
|
82
|
-
});
|
|
73
|
+
return this.client.indices.create(params, (err, response) => {
|
|
74
|
+
if (err) return Promise.reject(err);
|
|
75
|
+
return Promise.resolve(response);
|
|
83
76
|
});
|
|
84
77
|
}
|
|
85
78
|
|
|
@@ -89,31 +82,27 @@ class ElasticsearchService {
|
|
|
89
82
|
...options,
|
|
90
83
|
};
|
|
91
84
|
|
|
92
|
-
return
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
err ? /* istanbul ignore next */ reject(err) : resolve(response);
|
|
96
|
-
});
|
|
85
|
+
return this.client.indices.delete(params, (err, response) => {
|
|
86
|
+
if (err) return Promise.reject(err);
|
|
87
|
+
return Promise.resolve(response);
|
|
97
88
|
});
|
|
98
89
|
}
|
|
99
90
|
|
|
100
91
|
existIndices(index, options = {}) {
|
|
101
92
|
const params = { index, ...options };
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
});
|
|
93
|
+
|
|
94
|
+
return this.client.indices.exists(params, (err, response) => {
|
|
95
|
+
if (err) return Promise.reject(err);
|
|
96
|
+
return Promise.resolve(response.body);
|
|
107
97
|
});
|
|
108
98
|
}
|
|
109
99
|
|
|
110
100
|
putMapping(index, type, body) {
|
|
111
101
|
const params = { index, type, body: { properties: body } };
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
});
|
|
102
|
+
|
|
103
|
+
return this.client.indices.putMapping(params, (err, response) => {
|
|
104
|
+
if (err) return Promise.reject(err);
|
|
105
|
+
return Promise.resolve(response);
|
|
117
106
|
});
|
|
118
107
|
}
|
|
119
108
|
|
|
@@ -124,11 +113,9 @@ class ElasticsearchService {
|
|
|
124
113
|
id,
|
|
125
114
|
};
|
|
126
115
|
|
|
127
|
-
return
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
err ? /* istanbul ignore next */ reject(err) : resolve(response);
|
|
131
|
-
});
|
|
116
|
+
return this.client.get(params, (err, response) => {
|
|
117
|
+
if (err) return Promise.reject(err);
|
|
118
|
+
return Promise.resolve(response);
|
|
132
119
|
});
|
|
133
120
|
}
|
|
134
121
|
|
|
@@ -141,24 +128,20 @@ class ElasticsearchService {
|
|
|
141
128
|
refresh,
|
|
142
129
|
};
|
|
143
130
|
|
|
144
|
-
return
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
err ? /* istanbul ignore next */ reject(err) : resolve(response);
|
|
148
|
-
});
|
|
131
|
+
return this.client.index(params, (err, response) => {
|
|
132
|
+
if (err) return Promise.reject(err);
|
|
133
|
+
return Promise.resolve(response);
|
|
149
134
|
});
|
|
150
135
|
}
|
|
151
136
|
|
|
152
137
|
bulkIndex(bodies) {
|
|
153
|
-
return
|
|
154
|
-
this.
|
|
155
|
-
|
|
156
|
-
(err
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
);
|
|
161
|
-
});
|
|
138
|
+
return this.client.bulk(
|
|
139
|
+
{ body: this.constructBulkIndex(bodies) },
|
|
140
|
+
(err, response) => {
|
|
141
|
+
if (err) return Promise.reject(err);
|
|
142
|
+
return Promise.resolve(response);
|
|
143
|
+
}
|
|
144
|
+
);
|
|
162
145
|
}
|
|
163
146
|
|
|
164
147
|
create(id, body) {
|
|
@@ -169,11 +152,9 @@ class ElasticsearchService {
|
|
|
169
152
|
body,
|
|
170
153
|
};
|
|
171
154
|
|
|
172
|
-
return
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
err ? /* istanbul ignore next */ reject(err) : resolve(response);
|
|
176
|
-
});
|
|
155
|
+
return this.client.index(params, (err, response) => {
|
|
156
|
+
if (err) return Promise.reject(err);
|
|
157
|
+
return Promise.resolve(response);
|
|
177
158
|
});
|
|
178
159
|
}
|
|
179
160
|
|
|
@@ -184,11 +165,9 @@ class ElasticsearchService {
|
|
|
184
165
|
id,
|
|
185
166
|
};
|
|
186
167
|
|
|
187
|
-
return
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
err ? /* istanbul ignore next */ reject(err) : resolve(response);
|
|
191
|
-
});
|
|
168
|
+
return this.client.get(params, (err, response) => {
|
|
169
|
+
if (err) return Promise.reject(err);
|
|
170
|
+
return Promise.resolve(response);
|
|
192
171
|
});
|
|
193
172
|
}
|
|
194
173
|
|
|
@@ -32,6 +32,8 @@ describe('test LengthAwarePaginator instantiate', () => {
|
|
|
32
32
|
expect(await paginator.lastItem()).toMatchObject(mockDataLastItem);
|
|
33
33
|
expect(paginator.perPage()).toEqual(5);
|
|
34
34
|
expect(await paginator.total()).toEqual(30);
|
|
35
|
+
|
|
36
|
+
expect(db.select).toHaveBeenCalled();
|
|
35
37
|
});
|
|
36
38
|
it('should not throw exception when instantiating with current page', async () => {
|
|
37
39
|
const paginator = new LengthAwarePaginator(
|
|
@@ -51,6 +53,8 @@ describe('test LengthAwarePaginator instantiate', () => {
|
|
|
51
53
|
expect(await paginator.lastItem()).toMatchObject(mockDataLastItem);
|
|
52
54
|
expect(paginator.perPage()).toEqual(5);
|
|
53
55
|
expect(await paginator.total()).toEqual(30);
|
|
56
|
+
|
|
57
|
+
expect(db.select).toHaveBeenCalled();
|
|
54
58
|
});
|
|
55
59
|
it('should default perPage to 10 when instantiating without perPage', async () => {
|
|
56
60
|
const paginator = new LengthAwarePaginator(
|
|
@@ -66,6 +70,8 @@ describe('test LengthAwarePaginator instantiate', () => {
|
|
|
66
70
|
expect(paginator.currentPage()).toEqual(1);
|
|
67
71
|
expect(paginator.perPage()).toEqual(10);
|
|
68
72
|
expect(await paginator.total()).toEqual(30);
|
|
73
|
+
|
|
74
|
+
expect(db.select).toHaveBeenCalled();
|
|
69
75
|
});
|
|
70
76
|
it('should throw exception if total is not a number', async () => {
|
|
71
77
|
try {
|
|
@@ -116,6 +122,43 @@ describe('test LengthAwarePaginator instantiate', () => {
|
|
|
116
122
|
{ ...mockDataLastItem },
|
|
117
123
|
],
|
|
118
124
|
});
|
|
125
|
+
|
|
126
|
+
expect(db.select).toHaveBeenCalled();
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
it('should simply return an empty paginator object if total is explicitly zero', async () => {
|
|
130
|
+
const paginator = new LengthAwarePaginator(
|
|
131
|
+
db,
|
|
132
|
+
'SELECT * FROM tests',
|
|
133
|
+
{},
|
|
134
|
+
{
|
|
135
|
+
perPage: 5,
|
|
136
|
+
currentPage: 1,
|
|
137
|
+
total: 0,
|
|
138
|
+
}
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
expect(await paginator.count()).toEqual(0);
|
|
142
|
+
expect(await paginator.previousPage()).toEqual(false);
|
|
143
|
+
expect(paginator.currentPage()).toEqual(1);
|
|
144
|
+
expect(await paginator.nextPage()).toEqual(false);
|
|
145
|
+
expect(await paginator.firstItem()).toBe(undefined);
|
|
146
|
+
expect(await paginator.lastItem()).toBe(undefined);
|
|
147
|
+
expect(paginator.perPage()).toEqual(5);
|
|
148
|
+
expect(await paginator.total()).toEqual(0);
|
|
149
|
+
|
|
150
|
+
expect(await paginator.toObject()).toMatchObject({
|
|
151
|
+
count: 0,
|
|
152
|
+
previous_page: false,
|
|
153
|
+
current_page: 1,
|
|
154
|
+
next_page: false,
|
|
155
|
+
per_page: 5,
|
|
156
|
+
last_page: 0,
|
|
157
|
+
total: 0,
|
|
158
|
+
items: [],
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
expect(db.select).not.toHaveBeenCalled();
|
|
119
162
|
});
|
|
120
163
|
});
|
|
121
164
|
|
|
@@ -138,7 +181,7 @@ describe('test total() usage', () => {
|
|
|
138
181
|
});
|
|
139
182
|
|
|
140
183
|
describe('test lastPage() usage', () => {
|
|
141
|
-
it('should get the last page using supplied
|
|
184
|
+
it('should get the last page using supplied parameter as total data', async () => {
|
|
142
185
|
const paginator1 = new LengthAwarePaginator(
|
|
143
186
|
db,
|
|
144
187
|
'SELECT * FROM total_tests',
|
|
@@ -217,11 +217,17 @@ export default class Paginator {
|
|
|
217
217
|
}
|
|
218
218
|
|
|
219
219
|
async executeQuery() {
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
)
|
|
220
|
+
const total = this.totalProp;
|
|
221
|
+
if (
|
|
222
|
+
(typeof total === 'number' && total > 0) ||
|
|
223
|
+
(typeof total !== 'number' && !total)
|
|
224
|
+
) {
|
|
225
|
+
this.response = await this.dbProp.select(
|
|
226
|
+
this.generatePaginationSqlSnippet(),
|
|
227
|
+
this.sqlParamsProp,
|
|
228
|
+
this.connection
|
|
229
|
+
);
|
|
230
|
+
}
|
|
225
231
|
|
|
226
232
|
this.hasNext = this.response.length > this.perPage();
|
|
227
233
|
if (this.hasNext) {
|