@vtecx/vtecxnext 1.0.0 → 1.0.2

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.
@@ -30,6 +30,15 @@ export declare const sendMessage: (res: ServerResponse, statusCode: number, mess
30
30
  * @return true if log in has been successful.
31
31
  */
32
32
  export declare const login: (req: IncomingMessage, res: ServerResponse, wsse: string, reCaptchaToken?: string) => Promise<boolean>;
33
+ /**
34
+ * login with RXID.
35
+ * If the login is successful, sets the authentication information in a cookie.
36
+ * @param req request
37
+ * @param res response
38
+ * @param rxid RXID
39
+ * @return true if log in has been successful.
40
+ */
41
+ export declare const loginWithRxid: (req: IncomingMessage, res: ServerResponse, rxid: string) => Promise<boolean>;
33
42
  /**
34
43
  * logout.
35
44
  * If the logout is successful, delete the authentication information in a cookie.
@@ -38,6 +47,11 @@ export declare const login: (req: IncomingMessage, res: ServerResponse, wsse: st
38
47
  * @return true if log out has been successful.
39
48
  */
40
49
  export declare const logout: (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
50
+ /**
51
+ * get current datetime
52
+ * @return current datetime
53
+ */
54
+ export declare const now: () => Promise<string>;
41
55
  /**
42
56
  * get login uid
43
57
  * @param req request
@@ -45,6 +59,13 @@ export declare const logout: (req: IncomingMessage, res: ServerResponse) => Prom
45
59
  * @return uid
46
60
  */
47
61
  export declare const uid: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
62
+ /**
63
+ * get login account
64
+ * @param req request
65
+ * @param res response
66
+ * @return account
67
+ */
68
+ export declare const account: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
48
69
  /**
49
70
  * get login whoami
50
71
  * @param req request (for authentication)
@@ -59,6 +80,20 @@ export declare const whoami: (req: IncomingMessage, res: ServerResponse) => Prom
59
80
  * @return true if logged in
60
81
  */
61
82
  export declare const isLoggedin: (req: IncomingMessage, res: ServerResponse) => Promise<boolean>;
83
+ /**
84
+ * get login service
85
+ * @param req request
86
+ * @param res response
87
+ * @return service
88
+ */
89
+ export declare const service: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
90
+ /**
91
+ * get RXID
92
+ * @param req request
93
+ * @param res response
94
+ * @return RXID
95
+ */
96
+ export declare const rxid: (req: IncomingMessage, res: ServerResponse) => Promise<string>;
62
97
  /**
63
98
  * register a log entry
64
99
  * @param req request (for authentication)
@@ -74,9 +109,10 @@ export declare const log: (req: IncomingMessage, res: ServerResponse, message: s
74
109
  * @param req request (for authentication)
75
110
  * @param res response (for authentication)
76
111
  * @param uri key
112
+ * @param targetService target service name (for service linkage)
77
113
  * @return entry
78
114
  */
79
- export declare const getEntry: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
115
+ export declare const getEntry: (req: IncomingMessage, res: ServerResponse, uri: string, targetService?: string) => Promise<any>;
80
116
  /**
81
117
  * get entry
82
118
  * @param req request (for authentication)
@@ -84,7 +120,7 @@ export declare const getEntry: (req: IncomingMessage, res: ServerResponse, uri:
84
120
  * @param uri key and conditions
85
121
  * @return feed (entry array)
86
122
  */
87
- export declare const getFeed: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
123
+ export declare const getFeed: (req: IncomingMessage, res: ServerResponse, uri: string, targetService?: string) => Promise<any>;
88
124
  /**
89
125
  * get count
90
126
  * @param req request (for authentication)
@@ -92,7 +128,7 @@ export declare const getFeed: (req: IncomingMessage, res: ServerResponse, uri: s
92
128
  * @param uri key and conditions
93
129
  * @return count
94
130
  */
95
- export declare const count: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<number | null>;
131
+ export declare const count: (req: IncomingMessage, res: ServerResponse, uri: string, targetService?: string) => Promise<number | null>;
96
132
  /**
97
133
  * register entries
98
134
  * @param req request (for authentication)
@@ -101,7 +137,7 @@ export declare const count: (req: IncomingMessage, res: ServerResponse, uri: str
101
137
  * @param uri parent key if not specified in entry
102
138
  * @return registed entries
103
139
  */
104
- export declare const post: (req: IncomingMessage, res: ServerResponse, feed: any, uri?: string) => Promise<any>;
140
+ export declare const post: (req: IncomingMessage, res: ServerResponse, feed: any, uri?: string, targetService?: string) => Promise<any>;
105
141
  /**
106
142
  * update entries
107
143
  * @param req request (for authentication)
@@ -112,7 +148,7 @@ export declare const post: (req: IncomingMessage, res: ServerResponse, feed: any
112
148
  * @param async Execute asynchronous if this param is true. Valid only if 'isbulk' is true.
113
149
  * @return updated entries
114
150
  */
115
- export declare const put: (req: IncomingMessage, res: ServerResponse, feed: any, isbulk?: boolean, parallel?: boolean, async?: boolean) => Promise<any>;
151
+ export declare const put: (req: IncomingMessage, res: ServerResponse, feed: any, isbulk?: boolean, parallel?: boolean, async?: boolean, targetService?: string) => Promise<any>;
116
152
  /**
117
153
  * delete entry
118
154
  * @param req request (for authentication)
@@ -121,7 +157,7 @@ export declare const put: (req: IncomingMessage, res: ServerResponse, feed: any,
121
157
  * @param revision number of revision
122
158
  * @return true if successful
123
159
  */
124
- export declare const deleteEntry: (req: IncomingMessage, res: ServerResponse, uri: string, revision?: number) => Promise<boolean>;
160
+ export declare const deleteEntry: (req: IncomingMessage, res: ServerResponse, uri: string, revision?: number, targetService?: string) => Promise<boolean>;
125
161
  /**
126
162
  * delete folder
127
163
  * @param req request (for authentication)
@@ -130,7 +166,7 @@ export declare const deleteEntry: (req: IncomingMessage, res: ServerResponse, ur
130
166
  * @param async execute async
131
167
  * @return true if successful
132
168
  */
133
- export declare const deleteFolder: (req: IncomingMessage, res: ServerResponse, uri: string, async?: boolean) => Promise<boolean>;
169
+ export declare const deleteFolder: (req: IncomingMessage, res: ServerResponse, uri: string, async?: boolean, targetService?: string) => Promise<boolean>;
134
170
  /**
135
171
  * allocate numbers
136
172
  * @param req request (for authentication)
@@ -139,7 +175,7 @@ export declare const deleteFolder: (req: IncomingMessage, res: ServerResponse, u
139
175
  * @param num number to allocate
140
176
  * @return allocated numbers. comma separated if multiple.
141
177
  */
142
- export declare const allocids: (req: IncomingMessage, res: ServerResponse, uri: string, num: number) => Promise<string>;
178
+ export declare const allocids: (req: IncomingMessage, res: ServerResponse, uri: string, num: number, targetService?: string) => Promise<string>;
143
179
  /**
144
180
  * add a number
145
181
  * @param req request (for authentication)
@@ -148,7 +184,7 @@ export declare const allocids: (req: IncomingMessage, res: ServerResponse, uri:
148
184
  * @param num number to add
149
185
  * @return added number
150
186
  */
151
- export declare const addids: (req: IncomingMessage, res: ServerResponse, uri: string, num: number) => Promise<number | null>;
187
+ export declare const addids: (req: IncomingMessage, res: ServerResponse, uri: string, num: number, targetService?: string) => Promise<number | null>;
152
188
  /**
153
189
  * get a added number
154
190
  * @param req request (for authentication)
@@ -156,7 +192,7 @@ export declare const addids: (req: IncomingMessage, res: ServerResponse, uri: st
156
192
  * @param uri key
157
193
  * @return added number
158
194
  */
159
- export declare const getids: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<number | null>;
195
+ export declare const getids: (req: IncomingMessage, res: ServerResponse, uri: string, targetService?: string) => Promise<number | null>;
160
196
  /**
161
197
  * set a number
162
198
  * @param req request (for authentication)
@@ -165,7 +201,7 @@ export declare const getids: (req: IncomingMessage, res: ServerResponse, uri: st
165
201
  * @param num number to set
166
202
  * @return set number
167
203
  */
168
- export declare const setids: (req: IncomingMessage, res: ServerResponse, uri: string, num: number) => Promise<number | null>;
204
+ export declare const setids: (req: IncomingMessage, res: ServerResponse, uri: string, num: number, targetService?: string) => Promise<number | null>;
169
205
  /**
170
206
  * set a addition range
171
207
  * @param req request (for authentication)
@@ -300,7 +336,7 @@ export declare const getSessionLong: (req: IncomingMessage, res: ServerResponse,
300
336
  * @param pagerange page range
301
337
  * @return feed Maximum number of pages in the specified page range, and total count.
302
338
  */
303
- export declare const pagination: (req: IncomingMessage, res: ServerResponse, uri: string, pagerange: string) => Promise<any>;
339
+ export declare const pagination: (req: IncomingMessage, res: ServerResponse, uri: string, pagerange: string, targetService?: string) => Promise<any>;
304
340
  /**
305
341
  * get page
306
342
  * @param req request (for authentication)
@@ -309,7 +345,7 @@ export declare const pagination: (req: IncomingMessage, res: ServerResponse, uri
309
345
  * @param num page number
310
346
  * @return feed Maximum number of pages in the specified page range, and total count.
311
347
  */
312
- export declare const getPage: (req: IncomingMessage, res: ServerResponse, uri: string, num: number) => Promise<any>;
348
+ export declare const getPage: (req: IncomingMessage, res: ServerResponse, uri: string, num: number, targetService?: string) => Promise<any>;
313
349
  /**
314
350
  * post data to bigquery
315
351
  * @param req request (for authentication)
@@ -461,6 +497,58 @@ export declare const joinGroup: (req: IncomingMessage, res: ServerResponse, grou
461
497
  * @return feed
462
498
  */
463
499
  export declare const leaveGroup: (req: IncomingMessage, res: ServerResponse, group: string) => Promise<boolean>;
500
+ /**
501
+ * Get entries that have entries in a group, but are not in the group.
502
+ * (for entries with no signature or with an incorrect signature, if the user group requires a signature)
503
+ * @param req request (for authentication)
504
+ * @param res response (for authentication)
505
+ * @param uri group key
506
+ * @return feed (entry array)
507
+ */
508
+ export declare const noGroupMember: (req: IncomingMessage, res: ServerResponse, uri: string) => Promise<any>;
509
+ /**
510
+ * add user
511
+ * @param req request (for authentication)
512
+ * @param res response (for authentication)
513
+ * @param feed entry (JSON)
514
+ * @param reCaptchaToken reCAPTCHA token
515
+ * @return message feed
516
+ */
517
+ export declare const adduser: (req: IncomingMessage, res: ServerResponse, feed: any, reCaptchaToken: string) => Promise<any>;
518
+ /**
519
+ * add user by user admin
520
+ * @param req request (for authentication)
521
+ * @param res response (for authentication)
522
+ * @param feed entries (JSON)
523
+ * @param reCaptchaToken reCAPTCHA token
524
+ * @return message feed
525
+ */
526
+ export declare const adduserByAdmin: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
527
+ /**
528
+ * Send email for password reset
529
+ * @param req request (for authentication)
530
+ * @param res response (for authentication)
531
+ * @param feed entry (JSON)
532
+ * @param reCaptchaToken reCAPTCHA token
533
+ * @return message feed
534
+ */
535
+ export declare const passreset: (req: IncomingMessage, res: ServerResponse, feed: any, reCaptchaToken?: string) => Promise<any>;
536
+ /**
537
+ * change password
538
+ * @param req request (for authentication)
539
+ * @param res response (for authentication)
540
+ * @param feed entry (JSON)
541
+ * @return message feed
542
+ */
543
+ export declare const changepass: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
544
+ /**
545
+ * change password by user admin
546
+ * @param req request (for authentication)
547
+ * @param res response (for authentication)
548
+ * @param feed entry (JSON)
549
+ * @return message feed
550
+ */
551
+ export declare const changepassByAdmin: (req: IncomingMessage, res: ServerResponse, feed: any) => Promise<any>;
464
552
  /**
465
553
  * Error returned from vte.cx
466
554
  */
package/dist/vtecxnext.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setMessageQueue = exports.setMessageQueueStatus = exports.pushNotification = exports.sendMail = exports.checkSignature = exports.deleteSignature = exports.putSignatures = exports.putSignature = exports.toPdf = exports.getBQCsv = exports.getBQ = exports.deleteBQ = exports.postBQ = exports.getPage = exports.pagination = exports.getSessionLong = exports.getSessionString = exports.getSessionEntry = exports.getSessionFeed = exports.deleteSessionLong = exports.deleteSessionString = exports.deleteSessionEntry = exports.deleteSessionFeed = exports.incrementSession = exports.setSessionLong = exports.setSessionString = exports.setSessionEntry = exports.setSessionFeed = exports.getRangeids = exports.rangeids = exports.setids = exports.getids = exports.addids = exports.allocids = exports.deleteFolder = exports.deleteEntry = exports.put = exports.post = exports.count = exports.getFeed = exports.getEntry = exports.log = exports.isLoggedin = exports.whoami = exports.uid = exports.logout = exports.login = exports.sendMessage = exports.checkXRequestedWith = exports.hello = void 0;
4
- exports.VtecxNextError = exports.leaveGroup = exports.joinGroup = exports.getMessageQueue = void 0;
3
+ exports.deleteSignature = exports.putSignatures = exports.putSignature = exports.toPdf = exports.getBQCsv = exports.getBQ = exports.deleteBQ = exports.postBQ = exports.getPage = exports.pagination = exports.getSessionLong = exports.getSessionString = exports.getSessionEntry = exports.getSessionFeed = exports.deleteSessionLong = exports.deleteSessionString = exports.deleteSessionEntry = exports.deleteSessionFeed = exports.incrementSession = exports.setSessionLong = exports.setSessionString = exports.setSessionEntry = exports.setSessionFeed = exports.getRangeids = exports.rangeids = exports.setids = exports.getids = exports.addids = exports.allocids = exports.deleteFolder = exports.deleteEntry = exports.put = exports.post = exports.count = exports.getFeed = exports.getEntry = exports.log = exports.rxid = exports.service = exports.isLoggedin = exports.whoami = exports.account = exports.uid = exports.now = exports.logout = exports.loginWithRxid = exports.login = exports.sendMessage = exports.checkXRequestedWith = exports.hello = void 0;
4
+ exports.VtecxNextError = exports.changepassByAdmin = exports.changepass = exports.passreset = exports.adduserByAdmin = exports.adduser = exports.noGroupMember = exports.leaveGroup = exports.joinGroup = exports.getMessageQueue = exports.setMessageQueue = exports.setMessageQueueStatus = exports.pushNotification = exports.sendMail = exports.checkSignature = void 0;
5
5
  var SqlString = require('sqlstring');
6
6
  /**
7
7
  * Hello world.
@@ -76,6 +76,38 @@ const login = async (req, res, wsse, reCaptchaToken) => {
76
76
  return isLoggedin;
77
77
  };
78
78
  exports.login = login;
79
+ /**
80
+ * login with RXID.
81
+ * If the login is successful, sets the authentication information in a cookie.
82
+ * @param req request
83
+ * @param res response
84
+ * @param rxid RXID
85
+ * @return true if log in has been successful.
86
+ */
87
+ const loginWithRxid = async (req, res, rxid) => {
88
+ //console.log('[vtecxnext loginWithRxid] start.')
89
+ // 入力チェック
90
+ checkNotNull(rxid, 'Authentication information');
91
+ // ログイン
92
+ // reCAPTCHA tokenは任意
93
+ const method = 'GET';
94
+ const url = `/d/?_login&_RXID=${rxid}`;
95
+ const response = await requestVtecx(method, url, req);
96
+ const feed = await response.json();
97
+ // vte.cxからのset-cookieを転記
98
+ setCookie(response, res);
99
+ // レスポンスのエラーチェック
100
+ let isLoggedin;
101
+ if (response.status < 400) {
102
+ isLoggedin = true;
103
+ }
104
+ else {
105
+ isLoggedin = false;
106
+ }
107
+ //console.log(`[vtecxnext loginWithRxid] end. status=${response.status} message=${feed.title}`)
108
+ return isLoggedin;
109
+ };
110
+ exports.loginWithRxid = loginWithRxid;
79
111
  /**
80
112
  * logout.
81
113
  * If the logout is successful, delete the authentication information in a cookie.
@@ -101,6 +133,24 @@ const logout = async (req, res) => {
101
133
  return true;
102
134
  };
103
135
  exports.logout = logout;
136
+ /**
137
+ * get current datetime
138
+ * @return current datetime
139
+ */
140
+ const now = async () => {
141
+ //console.log('[vtecxnext now] start.')
142
+ // vte.cxへリクエスト
143
+ const method = 'GET';
144
+ const url = '/d/?_now';
145
+ const response = await requestVtecx(method, url);
146
+ //console.log(`[vtecxnext now] response=${response}`)
147
+ // レスポンスのエラーチェック
148
+ await checkVtecxResponse(response);
149
+ // 戻り値
150
+ const data = await getJson(response);
151
+ return data.feed.title;
152
+ };
153
+ exports.now = now;
104
154
  /**
105
155
  * get login uid
106
156
  * @param req request
@@ -123,6 +173,28 @@ const uid = async (req, res) => {
123
173
  return data.feed.title;
124
174
  };
125
175
  exports.uid = uid;
176
+ /**
177
+ * get login account
178
+ * @param req request
179
+ * @param res response
180
+ * @return account
181
+ */
182
+ const account = async (req, res) => {
183
+ //console.log('[vtecxnext account] start.')
184
+ // vte.cxへリクエスト
185
+ const method = 'GET';
186
+ const url = '/d/?_account';
187
+ const response = await requestVtecx(method, url, req);
188
+ //console.log(`[vtecxnext account] response=${response}`)
189
+ // vte.cxからのset-cookieを転記
190
+ setCookie(response, res);
191
+ // レスポンスのエラーチェック
192
+ await checkVtecxResponse(response);
193
+ // 戻り値
194
+ const data = await getJson(response);
195
+ return data.feed.title;
196
+ };
197
+ exports.account = account;
126
198
  /**
127
199
  * get login whoami
128
200
  * @param req request (for authentication)
@@ -161,6 +233,50 @@ const isLoggedin = async (req, res) => {
161
233
  }
162
234
  };
163
235
  exports.isLoggedin = isLoggedin;
236
+ /**
237
+ * get login service
238
+ * @param req request
239
+ * @param res response
240
+ * @return service
241
+ */
242
+ const service = async (req, res) => {
243
+ //console.log('[vtecxnext service] start.')
244
+ // vte.cxへリクエスト
245
+ const method = 'GET';
246
+ const url = '/d/?_service';
247
+ const response = await requestVtecx(method, url, req);
248
+ //console.log(`[vtecxnext service] response=${response}`)
249
+ // vte.cxからのset-cookieを転記
250
+ setCookie(response, res);
251
+ // レスポンスのエラーチェック
252
+ await checkVtecxResponse(response);
253
+ // 戻り値
254
+ const data = await getJson(response);
255
+ return data.feed.title;
256
+ };
257
+ exports.service = service;
258
+ /**
259
+ * get RXID
260
+ * @param req request
261
+ * @param res response
262
+ * @return RXID
263
+ */
264
+ const rxid = async (req, res) => {
265
+ //console.log('[vtecxnext service] start.')
266
+ // vte.cxへリクエスト
267
+ const method = 'GET';
268
+ const url = '/d/?_getrxid';
269
+ const response = await requestVtecx(method, url, req);
270
+ //console.log(`[vtecxnext uid] response=${response}`)
271
+ // vte.cxからのset-cookieを転記
272
+ setCookie(response, res);
273
+ // レスポンスのエラーチェック
274
+ await checkVtecxResponse(response);
275
+ // 戻り値
276
+ const data = await getJson(response);
277
+ return data.feed.title;
278
+ };
279
+ exports.rxid = rxid;
164
280
  /**
165
281
  * register a log entry
166
282
  * @param req request (for authentication)
@@ -191,16 +307,17 @@ exports.log = log;
191
307
  * @param req request (for authentication)
192
308
  * @param res response (for authentication)
193
309
  * @param uri key
310
+ * @param targetService target service name (for service linkage)
194
311
  * @return entry
195
312
  */
196
- const getEntry = async (req, res, uri) => {
313
+ const getEntry = async (req, res, uri, targetService) => {
197
314
  //console.log('[vtecxnext getEntry] start.')
198
315
  // キー入力値チェック
199
316
  checkUri(uri);
200
317
  // vte.cxへリクエスト
201
318
  const method = 'GET';
202
319
  const url = `/p${uri}?e`;
203
- const response = await requestVtecx(method, url, req);
320
+ const response = await requestVtecx(method, url, req, null, targetService);
204
321
  //console.log(`[vtecxnext getEntry] response=${response}`)
205
322
  // vte.cxからのset-cookieを転記
206
323
  setCookie(response, res);
@@ -217,14 +334,14 @@ exports.getEntry = getEntry;
217
334
  * @param uri key and conditions
218
335
  * @return feed (entry array)
219
336
  */
220
- const getFeed = async (req, res, uri) => {
337
+ const getFeed = async (req, res, uri, targetService) => {
221
338
  //console.log('[vtecxnext getFeed] start.')
222
339
  // キー入力値チェック
223
340
  checkUri(uri);
224
341
  // vte.cxへリクエスト
225
342
  const method = 'GET';
226
343
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}f`;
227
- const response = await requestVtecx(method, url, req);
344
+ const response = await requestVtecx(method, url, req, null, targetService);
228
345
  //console.log(`[vtecxnext getFeed] response=${response}`)
229
346
  // vte.cxからのset-cookieを転記
230
347
  setCookie(response, res);
@@ -241,14 +358,14 @@ exports.getFeed = getFeed;
241
358
  * @param uri key and conditions
242
359
  * @return count
243
360
  */
244
- const count = async (req, res, uri) => {
361
+ const count = async (req, res, uri, targetService) => {
245
362
  //console.log('[vtecxnext count] start.')
246
363
  // キー入力値チェック
247
364
  checkUri(uri);
248
365
  // vte.cxへリクエスト
249
366
  const method = 'GET';
250
367
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}c`;
251
- const response = await requestVtecx(method, url, req);
368
+ const response = await requestVtecx(method, url, req, null, targetService);
252
369
  //console.log(`[vtecxnext count] response=${response}`)
253
370
  // vte.cxからのset-cookieを転記
254
371
  setCookie(response, res);
@@ -267,7 +384,7 @@ exports.count = count;
267
384
  * @param uri parent key if not specified in entry
268
385
  * @return registed entries
269
386
  */
270
- const post = async (req, res, feed, uri) => {
387
+ const post = async (req, res, feed, uri, targetService) => {
271
388
  //console.log(`[vtecxnext post] start. feed=${feed}`)
272
389
  // 入力チェック
273
390
  checkNotNull(feed, 'Feed');
@@ -278,7 +395,7 @@ const post = async (req, res, feed, uri) => {
278
395
  // vte.cxへリクエスト
279
396
  const method = 'POST';
280
397
  const url = `/p${uri ? uri : '/'}?e`;
281
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
398
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed), targetService);
282
399
  //console.log(`[vtecxnext post] response. status=${response.status}`)
283
400
  // vte.cxからのset-cookieを転記
284
401
  setCookie(response, res);
@@ -297,7 +414,7 @@ exports.post = post;
297
414
  * @param async Execute asynchronous if this param is true. Valid only if 'isbulk' is true.
298
415
  * @return updated entries
299
416
  */
300
- const put = async (req, res, feed, isbulk, parallel, async) => {
417
+ const put = async (req, res, feed, isbulk, parallel, async, targetService) => {
301
418
  //console.log(`[vtecxnext put] start. feed=${feed}`)
302
419
  // 入力チェック
303
420
  checkNotNull(feed, 'Feed');
@@ -309,7 +426,7 @@ const put = async (req, res, feed, isbulk, parallel, async) => {
309
426
  }
310
427
  const url = `/p/?e${additionalParam}`;
311
428
  //console.log(`[vtecxnext put] url=${url}`)
312
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
429
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed), targetService);
313
430
  //console.log(`[vtecxnext put] response. status=${response.status}`)
314
431
  // vte.cxからのset-cookieを転記
315
432
  setCookie(response, res);
@@ -326,7 +443,7 @@ exports.put = put;
326
443
  * @param revision number of revision
327
444
  * @return true if successful
328
445
  */
329
- const deleteEntry = async (req, res, uri, revision) => {
446
+ const deleteEntry = async (req, res, uri, revision, targetService) => {
330
447
  //console.log(`[vtecxnext deleteEntry] start. uri=${uri} revision=${revision}`)
331
448
  // キー入力値チェック
332
449
  checkUri(uri);
@@ -334,7 +451,7 @@ const deleteEntry = async (req, res, uri, revision) => {
334
451
  const method = 'DELETE';
335
452
  const param = revision ? `&r=${revision}` : '';
336
453
  const url = `/p${uri}?e${param}`;
337
- const response = await requestVtecx(method, url, req);
454
+ const response = await requestVtecx(method, url, req, null, targetService);
338
455
  //console.log(`[vtecxnext deleteEntry] response. status=${response.status}`)
339
456
  // vte.cxからのset-cookieを転記
340
457
  setCookie(response, res);
@@ -351,14 +468,14 @@ exports.deleteEntry = deleteEntry;
351
468
  * @param async execute async
352
469
  * @return true if successful
353
470
  */
354
- const deleteFolder = async (req, res, uri, async) => {
471
+ const deleteFolder = async (req, res, uri, async, targetService) => {
355
472
  //console.log(`[vtecxnext deleteFolder] start. uri=${uri} async=${async}`)
356
473
  // キー入力値チェック
357
474
  checkUri(uri);
358
475
  // vte.cxへリクエスト
359
476
  const method = 'DELETE';
360
477
  const url = `/p${uri}?_rf${async ? '&_async' : ''}`;
361
- const response = await requestVtecx(method, url, req);
478
+ const response = await requestVtecx(method, url, req, null, targetService);
362
479
  //console.log(`[vtecxnext deleteFolder] response. status=${response.status}`)
363
480
  // vte.cxからのset-cookieを転記
364
481
  setCookie(response, res);
@@ -375,7 +492,7 @@ exports.deleteFolder = deleteFolder;
375
492
  * @param num number to allocate
376
493
  * @return allocated numbers. comma separated if multiple.
377
494
  */
378
- const allocids = async (req, res, uri, num) => {
495
+ const allocids = async (req, res, uri, num, targetService) => {
379
496
  //console.log('[vtecxnext allocids] start.')
380
497
  // キー入力値チェック
381
498
  checkUri(uri);
@@ -383,7 +500,7 @@ const allocids = async (req, res, uri, num) => {
383
500
  // vte.cxへリクエスト
384
501
  const method = 'GET';
385
502
  const url = `/p${uri}?_allocids=${num}`;
386
- const response = await requestVtecx(method, url, req);
503
+ const response = await requestVtecx(method, url, req, null, targetService);
387
504
  //console.log(`[vtecxnext allocids] response=${response}`)
388
505
  // vte.cxからのset-cookieを転記
389
506
  setCookie(response, res);
@@ -402,7 +519,7 @@ exports.allocids = allocids;
402
519
  * @param num number to add
403
520
  * @return added number
404
521
  */
405
- const addids = async (req, res, uri, num) => {
522
+ const addids = async (req, res, uri, num, targetService) => {
406
523
  //console.log('[vtecxnext addids] start.')
407
524
  // キー入力値チェック
408
525
  checkUri(uri);
@@ -410,7 +527,7 @@ const addids = async (req, res, uri, num) => {
410
527
  // vte.cxへリクエスト
411
528
  const method = 'PUT';
412
529
  const url = `/p${uri}?_addids=${num}`;
413
- const response = await requestVtecx(method, url, req);
530
+ const response = await requestVtecx(method, url, req, null, targetService);
414
531
  //console.log(`[vtecxnext addids] response=${response}`)
415
532
  // vte.cxからのset-cookieを転記
416
533
  setCookie(response, res);
@@ -428,14 +545,14 @@ exports.addids = addids;
428
545
  * @param uri key
429
546
  * @return added number
430
547
  */
431
- const getids = async (req, res, uri) => {
548
+ const getids = async (req, res, uri, targetService) => {
432
549
  //console.log('[vtecxnext getids] start.')
433
550
  // キー入力値チェック
434
551
  checkUri(uri);
435
552
  // vte.cxへリクエスト
436
553
  const method = 'GET';
437
554
  const url = `/p${uri}?_getids`;
438
- const response = await requestVtecx(method, url, req);
555
+ const response = await requestVtecx(method, url, req, null, targetService);
439
556
  //console.log(`[vtecxnext getids] response=${response}`)
440
557
  // vte.cxからのset-cookieを転記
441
558
  setCookie(response, res);
@@ -454,7 +571,7 @@ exports.getids = getids;
454
571
  * @param num number to set
455
572
  * @return set number
456
573
  */
457
- const setids = async (req, res, uri, num) => {
574
+ const setids = async (req, res, uri, num, targetService) => {
458
575
  //console.log('[vtecxnext setids] start.')
459
576
  // キー入力値チェック
460
577
  checkUri(uri);
@@ -462,7 +579,7 @@ const setids = async (req, res, uri, num) => {
462
579
  // vte.cxへリクエスト
463
580
  const method = 'PUT';
464
581
  const url = `/p${uri}?_setids=${num}`;
465
- const response = await requestVtecx(method, url, req);
582
+ const response = await requestVtecx(method, url, req, null, targetService);
466
583
  //console.log(`[vtecxnext setids] response=${response}`)
467
584
  // vte.cxからのset-cookieを転記
468
585
  setCookie(response, res);
@@ -864,14 +981,14 @@ exports.getSessionLong = getSessionLong;
864
981
  * @param pagerange page range
865
982
  * @return feed Maximum number of pages in the specified page range, and total count.
866
983
  */
867
- const pagination = async (req, res, uri, pagerange) => {
984
+ const pagination = async (req, res, uri, pagerange, targetService) => {
868
985
  //console.log('[vtecxnext pagination] start.')
869
986
  // キー入力値チェック
870
987
  checkUri(uri);
871
988
  // vte.cxへリクエスト
872
989
  const method = 'GET';
873
990
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}_pagination=${pagerange}`;
874
- const response = await requestVtecx(method, url, req);
991
+ const response = await requestVtecx(method, url, req, null, targetService);
875
992
  //console.log(`[vtecxnext pagination] response=${response}`)
876
993
  // vte.cxからのset-cookieを転記
877
994
  setCookie(response, res);
@@ -889,7 +1006,7 @@ exports.pagination = pagination;
889
1006
  * @param num page number
890
1007
  * @return feed Maximum number of pages in the specified page range, and total count.
891
1008
  */
892
- const getPage = async (req, res, uri, num) => {
1009
+ const getPage = async (req, res, uri, num, targetService) => {
893
1010
  //console.log('[vtecxnext getPage] start.')
894
1011
  // 入力値チェック
895
1012
  checkUri(uri);
@@ -897,7 +1014,7 @@ const getPage = async (req, res, uri, num) => {
897
1014
  // vte.cxへリクエスト
898
1015
  const method = 'GET';
899
1016
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}n=${num}`;
900
- const response = await requestVtecx(method, url, req);
1017
+ const response = await requestVtecx(method, url, req, null, targetService);
901
1018
  //console.log(`[vtecxnext getPage] response=${response}`)
902
1019
  // vte.cxからのset-cookieを転記
903
1020
  setCookie(response, res);
@@ -1413,6 +1530,151 @@ const leaveGroup = async (req, res, group) => {
1413
1530
  return true;
1414
1531
  };
1415
1532
  exports.leaveGroup = leaveGroup;
1533
+ /**
1534
+ * Get entries that have entries in a group, but are not in the group.
1535
+ * (for entries with no signature or with an incorrect signature, if the user group requires a signature)
1536
+ * @param req request (for authentication)
1537
+ * @param res response (for authentication)
1538
+ * @param uri group key
1539
+ * @return feed (entry array)
1540
+ */
1541
+ const noGroupMember = async (req, res, uri) => {
1542
+ //console.log('[vtecxnext noGroupMember] start.')
1543
+ // キー入力値チェック
1544
+ checkUri(uri);
1545
+ // vte.cxへリクエスト
1546
+ const method = 'GET';
1547
+ const url = `/d${uri}?_no_group_member`;
1548
+ const response = await requestVtecx(method, url, req);
1549
+ //console.log(`[vtecxnext noGroupMember] response=${response}`)
1550
+ // vte.cxからのset-cookieを転記
1551
+ setCookie(response, res);
1552
+ // レスポンスのエラーチェック
1553
+ await checkVtecxResponse(response);
1554
+ // 戻り値
1555
+ return await getJson(response);
1556
+ };
1557
+ exports.noGroupMember = noGroupMember;
1558
+ /**
1559
+ * add user
1560
+ * @param req request (for authentication)
1561
+ * @param res response (for authentication)
1562
+ * @param feed entry (JSON)
1563
+ * @param reCaptchaToken reCAPTCHA token
1564
+ * @return message feed
1565
+ */
1566
+ const adduser = async (req, res, feed, reCaptchaToken) => {
1567
+ //console.log(`[vtecxnext adduser] start. feed=${feed}`)
1568
+ // 入力チェック
1569
+ checkNotNull(feed, 'Feed');
1570
+ // vte.cxへリクエスト
1571
+ const method = 'POST';
1572
+ const param = reCaptchaToken ? `&g-recaptcha-token=${reCaptchaToken}` : '';
1573
+ const url = `/d/?_adduser${param}`;
1574
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1575
+ //console.log(`[vtecxnext adduser] response. status=${response.status}`)
1576
+ // vte.cxからのset-cookieを転記
1577
+ setCookie(response, res);
1578
+ // レスポンスのエラーチェック
1579
+ await checkVtecxResponse(response);
1580
+ return await getJson(response);
1581
+ };
1582
+ exports.adduser = adduser;
1583
+ /**
1584
+ * add user by user admin
1585
+ * @param req request (for authentication)
1586
+ * @param res response (for authentication)
1587
+ * @param feed entries (JSON)
1588
+ * @param reCaptchaToken reCAPTCHA token
1589
+ * @return message feed
1590
+ */
1591
+ const adduserByAdmin = async (req, res, feed) => {
1592
+ //console.log(`[vtecxnext adduserByAdmin] start. feed=${feed}`)
1593
+ // 入力チェック
1594
+ checkNotNull(feed, 'Feed');
1595
+ // vte.cxへリクエスト
1596
+ const method = 'POST';
1597
+ const url = `/d/?_adduserByAdmin`;
1598
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1599
+ //console.log(`[vtecxnext adduserByAdmin] response. status=${response.status}`)
1600
+ // vte.cxからのset-cookieを転記
1601
+ setCookie(response, res);
1602
+ // レスポンスのエラーチェック
1603
+ await checkVtecxResponse(response);
1604
+ return await getJson(response);
1605
+ };
1606
+ exports.adduserByAdmin = adduserByAdmin;
1607
+ /**
1608
+ * Send email for password reset
1609
+ * @param req request (for authentication)
1610
+ * @param res response (for authentication)
1611
+ * @param feed entry (JSON)
1612
+ * @param reCaptchaToken reCAPTCHA token
1613
+ * @return message feed
1614
+ */
1615
+ const passreset = async (req, res, feed, reCaptchaToken) => {
1616
+ //console.log(`[vtecxnext passreset] start. feed=${feed}`)
1617
+ // 入力チェック
1618
+ checkNotNull(feed, 'Feed');
1619
+ // vte.cxへリクエスト
1620
+ const method = 'POST';
1621
+ const param = reCaptchaToken ? `&g-recaptcha-token=${reCaptchaToken}` : '';
1622
+ const url = `/d/?_passreset${param}`;
1623
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1624
+ //console.log(`[vtecxnext passreset] response. status=${response.status}`)
1625
+ // vte.cxからのset-cookieを転記
1626
+ setCookie(response, res);
1627
+ // レスポンスのエラーチェック
1628
+ await checkVtecxResponse(response);
1629
+ return await getJson(response);
1630
+ };
1631
+ exports.passreset = passreset;
1632
+ /**
1633
+ * change password
1634
+ * @param req request (for authentication)
1635
+ * @param res response (for authentication)
1636
+ * @param feed entry (JSON)
1637
+ * @return message feed
1638
+ */
1639
+ const changepass = async (req, res, feed) => {
1640
+ //console.log(`[vtecxnext changepass] start. feed=${feed}`)
1641
+ // 入力チェック
1642
+ checkNotNull(feed, 'Feed');
1643
+ // vte.cxへリクエスト
1644
+ const method = 'PUT';
1645
+ const url = `/d/?_changephash`;
1646
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1647
+ //console.log(`[vtecxnext changepass] response. status=${response.status}`)
1648
+ // vte.cxからのset-cookieを転記
1649
+ setCookie(response, res);
1650
+ // レスポンスのエラーチェック
1651
+ await checkVtecxResponse(response);
1652
+ return await getJson(response);
1653
+ };
1654
+ exports.changepass = changepass;
1655
+ /**
1656
+ * change password by user admin
1657
+ * @param req request (for authentication)
1658
+ * @param res response (for authentication)
1659
+ * @param feed entry (JSON)
1660
+ * @return message feed
1661
+ */
1662
+ const changepassByAdmin = async (req, res, feed) => {
1663
+ //console.log(`[vtecxnext changepassByAdmin] start. feed=${feed}`)
1664
+ // 入力チェック
1665
+ checkNotNull(feed, 'Feed');
1666
+ // vte.cxへリクエスト
1667
+ const method = 'PUT';
1668
+ const url = `/d/?_changephashByAdmin`;
1669
+ const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1670
+ //console.log(`[vtecxnext changepassByAdmin] response. status=${response.status}`)
1671
+ // vte.cxからのset-cookieを転記
1672
+ setCookie(response, res);
1673
+ // レスポンスのエラーチェック
1674
+ await checkVtecxResponse(response);
1675
+ return await getJson(response);
1676
+ };
1677
+ exports.changepassByAdmin = changepassByAdmin;
1416
1678
  //---------------------------------------------
1417
1679
  /**
1418
1680
  * Error returned from vte.cx
@@ -1433,12 +1695,22 @@ exports.VtecxNextError = VtecxNextError;
1433
1695
  * @param url サーブレットパス以降のURL
1434
1696
  * @param req リクエスト。認証情報設定に使用。
1435
1697
  * @param body リクエストデータ
1698
+ * @param targetService 連携サービス名
1436
1699
  * @returns promise
1437
1700
  */
1438
- const requestVtecx = async (method, url, req, body) => {
1701
+ const requestVtecx = async (method, url, req, body, targetService) => {
1439
1702
  // cookieの値をvte.cxへのリクエストヘッダに設定
1440
- const cookie = req.headers['cookie'];
1441
- const headers = { 'Cookie': cookie };
1703
+ const cookie = req ? req.headers['cookie'] : undefined;
1704
+ const headers = cookie ? { 'Cookie': cookie } : {};
1705
+ if (targetService) {
1706
+ // サービス連携の場合
1707
+ const servicekey = process.env[`SERVICEKEY_${targetService}`];
1708
+ //console.log(`[requestVtecx] targetService=${targetService} servicekey=${servicekey}`)
1709
+ if (servicekey) {
1710
+ headers['X-SERVICELINKAGE'] = targetService;
1711
+ headers['X-SERVICEKEY'] = servicekey;
1712
+ }
1713
+ }
1442
1714
  return fetchVtecx(method, url, headers, body);
1443
1715
  };
1444
1716
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtecx/vtecxnext",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "vte.cx Next.js api",
5
5
  "main": "dist/index.js",
6
6
  "files": [