@vtecx/vtecxnext 1.0.6 → 1.0.8

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/dist/vtecxnext.js CHANGED
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  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;
30
- exports.VtecxNextError = exports.buffer = exports.oauthCallbackLine = exports.oauthLine = exports.removealias = exports.addalias = exports.removeacl = exports.addacl = exports.getcontent = exports.deletecontent = exports.putcontent = exports.savefiles = exports.deleteusers = exports.deleteuser = exports.canceluser = exports.activateusers = exports.activateuser = exports.revokeusers = exports.revokeuser = exports.userstatus = exports.changeaccount_verify = exports.changeaccount = 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;
30
+ exports.FetchError = exports.VtecxNextError = exports.buffer = exports.oauthCallbackLine = exports.oauthLine = exports.removealias = exports.addalias = exports.removeacl = exports.addacl = exports.getcontent = exports.deletecontent = exports.putcontent = exports.savefiles = exports.deleteusers = exports.deleteuser = exports.canceluser = exports.activateusers = exports.activateuser = exports.revokeusers = exports.revokeuser = exports.userstatus = exports.changeaccount_verify = exports.changeaccount = exports.changepassByAdmin = exports.changepass = exports.passreset = exports.adduserByAdmin = exports.adduser = exports.isAdmin = exports.isGroupMember = exports.getGroups = exports.noGroupMember = exports.leaveGroup = exports.joinGroup = exports.getMessageQueue = exports.setMessageQueue = exports.setMessageQueueStatus = exports.pushNotification = exports.sendMail = exports.checkSignature = void 0;
31
31
  const sqlstring_1 = __importDefault(require("sqlstring"));
32
32
  const formidable_1 = __importDefault(require("formidable"));
33
33
  const fs_1 = __importDefault(require("fs"));
@@ -89,7 +89,13 @@ const login = async (req, res, wsse, reCaptchaToken) => {
89
89
  const method = 'GET';
90
90
  const url = `/d/?_login${param}`;
91
91
  const headers = { 'X-WSSE': `${wsse}` };
92
- const response = await fetchVtecx(method, url, headers);
92
+ let response;
93
+ try {
94
+ response = await fetchVtecx(method, url, headers);
95
+ }
96
+ catch (e) {
97
+ throw newFetchError(e, true);
98
+ }
93
99
  //const feed = await response.json()
94
100
  // vte.cxからのset-cookieを転記
95
101
  setCookie(response, res);
@@ -121,7 +127,13 @@ const loginWithRxid = async (req, res, rxid) => {
121
127
  // reCAPTCHA tokenは任意
122
128
  const method = 'GET';
123
129
  const url = `/d/?_login&_RXID=${rxid}`;
124
- const response = await requestVtecx(method, url, req);
130
+ let response;
131
+ try {
132
+ response = await requestVtecx(method, url, req);
133
+ }
134
+ catch (e) {
135
+ throw newFetchError(e, true);
136
+ }
125
137
  const feed = await response.json();
126
138
  // vte.cxからのset-cookieを転記
127
139
  setCookie(response, res);
@@ -149,7 +161,13 @@ const logout = async (req, res) => {
149
161
  // vte.cxへリクエスト
150
162
  const method = 'GET';
151
163
  const url = '/d/?_logout';
152
- const response = await requestVtecx(method, url, req);
164
+ let response;
165
+ try {
166
+ response = await requestVtecx(method, url, req);
167
+ }
168
+ catch (e) {
169
+ throw newFetchError(e, true);
170
+ }
153
171
  //console.log(`[vtecxnext logout] response=${response}`)
154
172
  // vte.cxからのset-cookieを転記
155
173
  setCookie(response, res);
@@ -171,7 +189,13 @@ const now = async () => {
171
189
  // vte.cxへリクエスト
172
190
  const method = 'GET';
173
191
  const url = '/d/?_now';
174
- const response = await requestVtecx(method, url);
192
+ let response;
193
+ try {
194
+ response = await requestVtecx(method, url);
195
+ }
196
+ catch (e) {
197
+ throw newFetchError(e, true);
198
+ }
175
199
  //console.log(`[vtecxnext now] response=${response}`)
176
200
  // レスポンスのエラーチェック
177
201
  await checkVtecxResponse(response);
@@ -191,7 +215,13 @@ const uid = async (req, res) => {
191
215
  // vte.cxへリクエスト
192
216
  const method = 'GET';
193
217
  const url = '/d/?_uid';
194
- const response = await requestVtecx(method, url, req);
218
+ let response;
219
+ try {
220
+ response = await requestVtecx(method, url, req);
221
+ }
222
+ catch (e) {
223
+ throw newFetchError(e, true);
224
+ }
195
225
  //console.log(`[vtecxnext uid] response=${response}`)
196
226
  // vte.cxからのset-cookieを転記
197
227
  setCookie(response, res);
@@ -213,7 +243,13 @@ const account = async (req, res) => {
213
243
  // vte.cxへリクエスト
214
244
  const method = 'GET';
215
245
  const url = '/d/?_account';
216
- const response = await requestVtecx(method, url, req);
246
+ let response;
247
+ try {
248
+ response = await requestVtecx(method, url, req);
249
+ }
250
+ catch (e) {
251
+ throw newFetchError(e, true);
252
+ }
217
253
  //console.log(`[vtecxnext account] response=${response}`)
218
254
  // vte.cxからのset-cookieを転記
219
255
  setCookie(response, res);
@@ -235,7 +271,13 @@ const whoami = async (req, res) => {
235
271
  // vte.cxへリクエスト
236
272
  const method = 'GET';
237
273
  const url = '/d/?_whoami';
238
- const response = await requestVtecx(method, url, req);
274
+ let response;
275
+ try {
276
+ response = await requestVtecx(method, url, req);
277
+ }
278
+ catch (e) {
279
+ throw newFetchError(e, true);
280
+ }
239
281
  //console.log(`[vtecxnext whoami] response=${response}`)
240
282
  // vte.cxからのset-cookieを転記
241
283
  setCookie(response, res);
@@ -273,7 +315,13 @@ const service = async (req, res) => {
273
315
  // vte.cxへリクエスト
274
316
  const method = 'GET';
275
317
  const url = '/d/?_service';
276
- const response = await requestVtecx(method, url, req);
318
+ let response;
319
+ try {
320
+ response = await requestVtecx(method, url, req);
321
+ }
322
+ catch (e) {
323
+ throw newFetchError(e, true);
324
+ }
277
325
  //console.log(`[vtecxnext service] response=${response}`)
278
326
  // vte.cxからのset-cookieを転記
279
327
  setCookie(response, res);
@@ -295,7 +343,13 @@ const rxid = async (req, res) => {
295
343
  // vte.cxへリクエスト
296
344
  const method = 'GET';
297
345
  const url = '/d/?_getrxid';
298
- const response = await requestVtecx(method, url, req);
346
+ let response;
347
+ try {
348
+ response = await requestVtecx(method, url, req);
349
+ }
350
+ catch (e) {
351
+ throw newFetchError(e, true);
352
+ }
299
353
  //console.log(`[vtecxnext uid] response=${response}`)
300
354
  // vte.cxからのset-cookieを転記
301
355
  setCookie(response, res);
@@ -316,12 +370,18 @@ exports.rxid = rxid;
316
370
  * @return true if successful
317
371
  */
318
372
  const log = async (req, res, message, title, subtitle) => {
319
- const logTitle = title ? title : 'JavaScript';
320
- const logSubtitle = subtitle ? subtitle : 'INFO';
373
+ const logTitle = title ?? 'JavaScript';
374
+ const logSubtitle = subtitle ?? 'INFO';
321
375
  const feed = [{ 'title': logTitle, 'subtitle': logSubtitle, 'summary': message }];
322
376
  const method = 'POST';
323
377
  const url = `/p/?_log`;
324
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
378
+ let response;
379
+ try {
380
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
381
+ }
382
+ catch (e) {
383
+ throw newFetchError(e, true);
384
+ }
325
385
  //console.log(`[vtecxnext log] response. status=${response.status}`)
326
386
  // vte.cxからのset-cookieを転記
327
387
  setCookie(response, res);
@@ -346,7 +406,13 @@ const getEntry = async (req, res, uri, targetService) => {
346
406
  // vte.cxへリクエスト
347
407
  const method = 'GET';
348
408
  const url = `/p${uri}?e`;
349
- const response = await requestVtecx(method, url, req, null, null, targetService);
409
+ let response;
410
+ try {
411
+ response = await requestVtecx(method, url, req, null, null, targetService);
412
+ }
413
+ catch (e) {
414
+ throw newFetchError(e, true);
415
+ }
350
416
  //console.log(`[vtecxnext getEntry] response=${response}`)
351
417
  // vte.cxからのset-cookieを転記
352
418
  setCookie(response, res);
@@ -370,7 +436,13 @@ const getFeed = async (req, res, uri, targetService) => {
370
436
  // vte.cxへリクエスト
371
437
  const method = 'GET';
372
438
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}f`;
373
- const response = await requestVtecx(method, url, req, null, null, targetService);
439
+ let response;
440
+ try {
441
+ response = await requestVtecx(method, url, req, null, null, targetService);
442
+ }
443
+ catch (e) {
444
+ throw newFetchError(e, true);
445
+ }
374
446
  //console.log(`[vtecxnext getFeed] response=${response}`)
375
447
  // vte.cxからのset-cookieを転記
376
448
  setCookie(response, res);
@@ -394,7 +466,13 @@ const count = async (req, res, uri, targetService) => {
394
466
  // vte.cxへリクエスト
395
467
  const method = 'GET';
396
468
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}c`;
397
- const response = await requestVtecx(method, url, req, null, null, targetService);
469
+ let response;
470
+ try {
471
+ response = await requestVtecx(method, url, req, null, null, targetService);
472
+ }
473
+ catch (e) {
474
+ throw newFetchError(e, true);
475
+ }
398
476
  //console.log(`[vtecxnext count] response=${response}`)
399
477
  // vte.cxからのset-cookieを転記
400
478
  setCookie(response, res);
@@ -424,7 +502,13 @@ const post = async (req, res, feed, uri, targetService) => {
424
502
  // vte.cxへリクエスト
425
503
  const method = 'POST';
426
504
  const url = `/p${uri ? uri : '/'}?e`;
427
- const response = await requestVtecx(method, url, req, JSON.stringify(feed), null, targetService);
505
+ let response;
506
+ try {
507
+ response = await requestVtecx(method, url, req, JSON.stringify(feed), null, targetService);
508
+ }
509
+ catch (e) {
510
+ throw newFetchError(e, true);
511
+ }
428
512
  //console.log(`[vtecxnext post] response. status=${response.status}`)
429
513
  // vte.cxからのset-cookieを転記
430
514
  setCookie(response, res);
@@ -455,7 +539,13 @@ const put = async (req, res, feed, isbulk, parallel, async, targetService) => {
455
539
  }
456
540
  const url = `/p/?e${additionalParam}`;
457
541
  //console.log(`[vtecxnext put] url=${url}`)
458
- const response = await requestVtecx(method, url, req, JSON.stringify(feed), null, targetService);
542
+ let response;
543
+ try {
544
+ response = await requestVtecx(method, url, req, JSON.stringify(feed), null, targetService);
545
+ }
546
+ catch (e) {
547
+ throw newFetchError(e, true);
548
+ }
459
549
  //console.log(`[vtecxnext put] response. status=${response.status}`)
460
550
  // vte.cxからのset-cookieを転記
461
551
  setCookie(response, res);
@@ -480,7 +570,13 @@ const deleteEntry = async (req, res, uri, revision, targetService) => {
480
570
  const method = 'DELETE';
481
571
  const param = revision ? `&r=${revision}` : '';
482
572
  const url = `/p${uri}?e${param}`;
483
- const response = await requestVtecx(method, url, req, null, null, targetService);
573
+ let response;
574
+ try {
575
+ response = await requestVtecx(method, url, req, null, null, targetService);
576
+ }
577
+ catch (e) {
578
+ throw newFetchError(e, true);
579
+ }
484
580
  //console.log(`[vtecxnext deleteEntry] response. status=${response.status}`)
485
581
  // vte.cxからのset-cookieを転記
486
582
  setCookie(response, res);
@@ -504,7 +600,13 @@ const deleteFolder = async (req, res, uri, async, targetService) => {
504
600
  // vte.cxへリクエスト
505
601
  const method = 'DELETE';
506
602
  const url = `/p${uri}?_rf${async ? '&_async' : ''}`;
507
- const response = await requestVtecx(method, url, req, null, null, targetService);
603
+ let response;
604
+ try {
605
+ response = await requestVtecx(method, url, req, null, null, targetService);
606
+ }
607
+ catch (e) {
608
+ throw newFetchError(e, true);
609
+ }
508
610
  //console.log(`[vtecxnext deleteFolder] response. status=${response.status}`)
509
611
  // vte.cxからのset-cookieを転記
510
612
  setCookie(response, res);
@@ -529,7 +631,13 @@ const allocids = async (req, res, uri, num, targetService) => {
529
631
  // vte.cxへリクエスト
530
632
  const method = 'GET';
531
633
  const url = `/p${uri}?_allocids=${num}`;
532
- const response = await requestVtecx(method, url, req, null, null, targetService);
634
+ let response;
635
+ try {
636
+ response = await requestVtecx(method, url, req, null, null, targetService);
637
+ }
638
+ catch (e) {
639
+ throw newFetchError(e, true);
640
+ }
533
641
  //console.log(`[vtecxnext allocids] response=${response}`)
534
642
  // vte.cxからのset-cookieを転記
535
643
  setCookie(response, res);
@@ -556,7 +664,13 @@ const addids = async (req, res, uri, num, targetService) => {
556
664
  // vte.cxへリクエスト
557
665
  const method = 'PUT';
558
666
  const url = `/p${uri}?_addids=${num}`;
559
- const response = await requestVtecx(method, url, req, null, null, targetService);
667
+ let response;
668
+ try {
669
+ response = await requestVtecx(method, url, req, null, null, targetService);
670
+ }
671
+ catch (e) {
672
+ throw newFetchError(e, true);
673
+ }
560
674
  //console.log(`[vtecxnext addids] response=${response}`)
561
675
  // vte.cxからのset-cookieを転記
562
676
  setCookie(response, res);
@@ -581,7 +695,13 @@ const getids = async (req, res, uri, targetService) => {
581
695
  // vte.cxへリクエスト
582
696
  const method = 'GET';
583
697
  const url = `/p${uri}?_getids`;
584
- const response = await requestVtecx(method, url, req, null, null, targetService);
698
+ let response;
699
+ try {
700
+ response = await requestVtecx(method, url, req, null, null, targetService);
701
+ }
702
+ catch (e) {
703
+ throw newFetchError(e, true);
704
+ }
585
705
  //console.log(`[vtecxnext getids] response=${response}`)
586
706
  // vte.cxからのset-cookieを転記
587
707
  setCookie(response, res);
@@ -608,7 +728,13 @@ const setids = async (req, res, uri, num, targetService) => {
608
728
  // vte.cxへリクエスト
609
729
  const method = 'PUT';
610
730
  const url = `/p${uri}?_setids=${num}`;
611
- const response = await requestVtecx(method, url, req, null, null, targetService);
731
+ let response;
732
+ try {
733
+ response = await requestVtecx(method, url, req, null, null, targetService);
734
+ }
735
+ catch (e) {
736
+ throw newFetchError(e, true);
737
+ }
612
738
  //console.log(`[vtecxnext setids] response=${response}`)
613
739
  // vte.cxからのset-cookieを転記
614
740
  setCookie(response, res);
@@ -636,7 +762,13 @@ const rangeids = async (req, res, uri, range) => {
636
762
  const method = 'PUT';
637
763
  const url = `/p${uri}?_rangeids`;
638
764
  const feed = { feed: { 'title': range } };
639
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
765
+ let response;
766
+ try {
767
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
768
+ }
769
+ catch (e) {
770
+ throw newFetchError(e, true);
771
+ }
640
772
  //console.log(`[vtecxnext rangeids] response=${response}`)
641
773
  // vte.cxからのset-cookieを転記
642
774
  setCookie(response, res);
@@ -661,7 +793,13 @@ const getRangeids = async (req, res, uri) => {
661
793
  // vte.cxへリクエスト
662
794
  const method = 'GET';
663
795
  const url = `/p${uri}?_rangeids`;
664
- const response = await requestVtecx(method, url, req);
796
+ let response;
797
+ try {
798
+ response = await requestVtecx(method, url, req);
799
+ }
800
+ catch (e) {
801
+ throw newFetchError(e, true);
802
+ }
665
803
  //console.log(`[vtecxnext getrangeids] response=${response}`)
666
804
  // vte.cxからのset-cookieを転記
667
805
  setCookie(response, res);
@@ -688,7 +826,13 @@ const setSessionFeed = async (req, res, name, feed) => {
688
826
  // vte.cxへリクエスト
689
827
  const method = 'PUT';
690
828
  const url = `/p/?_sessionfeed=${name}`;
691
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
829
+ let response;
830
+ try {
831
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
832
+ }
833
+ catch (e) {
834
+ throw newFetchError(e, true);
835
+ }
692
836
  //console.log(`[vtecxnext setSessionFeed] response. status=${response.status}`)
693
837
  // vte.cxからのset-cookieを転記
694
838
  setCookie(response, res);
@@ -714,7 +858,13 @@ const setSessionEntry = async (req, res, name, entry) => {
714
858
  const method = 'PUT';
715
859
  const url = `/p/?_sessionentry=${name}`;
716
860
  const feed = { feed: { 'entry': entry } };
717
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
861
+ let response;
862
+ try {
863
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
864
+ }
865
+ catch (e) {
866
+ throw newFetchError(e, true);
867
+ }
718
868
  //console.log(`[vtecxnext setSessionEntry] response. status=${response.status}`)
719
869
  // vte.cxからのset-cookieを転記
720
870
  setCookie(response, res);
@@ -740,7 +890,13 @@ const setSessionString = async (req, res, name, str) => {
740
890
  const method = 'PUT';
741
891
  const url = `/p/?_sessionstring=${name}`;
742
892
  const feed = { feed: { 'title': str } };
743
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
893
+ let response;
894
+ try {
895
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
896
+ }
897
+ catch (e) {
898
+ throw newFetchError(e, true);
899
+ }
744
900
  //console.log(`[vtecxnext setSessionString] response. status=${response.status}`)
745
901
  // vte.cxからのset-cookieを転記
746
902
  setCookie(response, res);
@@ -766,7 +922,13 @@ const setSessionLong = async (req, res, name, num) => {
766
922
  const method = 'PUT';
767
923
  const url = `/p/?_sessionlong=${name}`;
768
924
  const feed = { feed: { 'title': String(num) } };
769
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
925
+ let response;
926
+ try {
927
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
928
+ }
929
+ catch (e) {
930
+ throw newFetchError(e, true);
931
+ }
770
932
  //console.log(`[vtecxnext setSessionLong] response. status=${response.status}`)
771
933
  // vte.cxからのset-cookieを転記
772
934
  setCookie(response, res);
@@ -791,7 +953,13 @@ const incrementSession = async (req, res, name, num) => {
791
953
  // vte.cxへリクエスト
792
954
  const method = 'PUT';
793
955
  const url = `/p/?_sessionincr=${name}&_num=${num}`;
794
- const response = await requestVtecx(method, url, req);
956
+ let response;
957
+ try {
958
+ response = await requestVtecx(method, url, req);
959
+ }
960
+ catch (e) {
961
+ throw newFetchError(e, true);
962
+ }
795
963
  //console.log(`[vtecxnext incrementSession] response. status=${response.status}`)
796
964
  // vte.cxからのset-cookieを転記
797
965
  setCookie(response, res);
@@ -816,7 +984,13 @@ const deleteSessionFeed = async (req, res, name) => {
816
984
  // vte.cxへリクエスト
817
985
  const method = 'DELETE';
818
986
  const url = `/p/?_sessionfeed=${name}`;
819
- const response = await requestVtecx(method, url, req);
987
+ let response;
988
+ try {
989
+ response = await requestVtecx(method, url, req);
990
+ }
991
+ catch (e) {
992
+ throw newFetchError(e, true);
993
+ }
820
994
  //console.log(`[vtecxnext deleteSessionFeed] response. status=${response.status}`)
821
995
  // vte.cxからのset-cookieを転記
822
996
  setCookie(response, res);
@@ -839,7 +1013,13 @@ const deleteSessionEntry = async (req, res, name) => {
839
1013
  // vte.cxへリクエスト
840
1014
  const method = 'DELETE';
841
1015
  const url = `/p/?_sessionentry=${name}`;
842
- const response = await requestVtecx(method, url, req);
1016
+ let response;
1017
+ try {
1018
+ response = await requestVtecx(method, url, req);
1019
+ }
1020
+ catch (e) {
1021
+ throw newFetchError(e, true);
1022
+ }
843
1023
  //console.log(`[vtecxnext deleteSessionEntry] response. status=${response.status}`)
844
1024
  // vte.cxからのset-cookieを転記
845
1025
  setCookie(response, res);
@@ -862,7 +1042,13 @@ const deleteSessionString = async (req, res, name) => {
862
1042
  // vte.cxへリクエスト
863
1043
  const method = 'DELETE';
864
1044
  const url = `/p/?_sessionstring=${name}`;
865
- const response = await requestVtecx(method, url, req);
1045
+ let response;
1046
+ try {
1047
+ response = await requestVtecx(method, url, req);
1048
+ }
1049
+ catch (e) {
1050
+ throw newFetchError(e, true);
1051
+ }
866
1052
  //console.log(`[vtecxnext deleteSessionString] response. status=${response.status}`)
867
1053
  // vte.cxからのset-cookieを転記
868
1054
  setCookie(response, res);
@@ -885,7 +1071,13 @@ const deleteSessionLong = async (req, res, name) => {
885
1071
  // vte.cxへリクエスト
886
1072
  const method = 'DELETE';
887
1073
  const url = `/p/?_sessionlong=${name}`;
888
- const response = await requestVtecx(method, url, req);
1074
+ let response;
1075
+ try {
1076
+ response = await requestVtecx(method, url, req);
1077
+ }
1078
+ catch (e) {
1079
+ throw newFetchError(e, true);
1080
+ }
889
1081
  //console.log(`[vtecxnext deleteSessionLong] response. status=${response.status}`)
890
1082
  // vte.cxからのset-cookieを転記
891
1083
  setCookie(response, res);
@@ -908,7 +1100,13 @@ const getSessionFeed = async (req, res, name) => {
908
1100
  // vte.cxへリクエスト
909
1101
  const method = 'GET';
910
1102
  const url = `/p/?_sessionfeed=${name}`;
911
- const response = await requestVtecx(method, url, req);
1103
+ let response;
1104
+ try {
1105
+ response = await requestVtecx(method, url, req);
1106
+ }
1107
+ catch (e) {
1108
+ throw newFetchError(e, true);
1109
+ }
912
1110
  //console.log(`[vtecxnext getSessionFeed] response. status=${response.status}`)
913
1111
  // vte.cxからのset-cookieを転記
914
1112
  setCookie(response, res);
@@ -932,7 +1130,13 @@ const getSessionEntry = async (req, res, name) => {
932
1130
  // vte.cxへリクエスト
933
1131
  const method = 'GET';
934
1132
  const url = `/p/?_sessionentry=${name}`;
935
- const response = await requestVtecx(method, url, req);
1133
+ let response;
1134
+ try {
1135
+ response = await requestVtecx(method, url, req);
1136
+ }
1137
+ catch (e) {
1138
+ throw newFetchError(e, true);
1139
+ }
936
1140
  //console.log(`[vtecxnext getSessionEntry] response. status=${response.status}`)
937
1141
  // vte.cxからのset-cookieを転記
938
1142
  setCookie(response, res);
@@ -956,7 +1160,13 @@ const getSessionString = async (req, res, name) => {
956
1160
  // vte.cxへリクエスト
957
1161
  const method = 'GET';
958
1162
  const url = `/p/?_sessionstring=${name}`;
959
- const response = await requestVtecx(method, url, req);
1163
+ let response;
1164
+ try {
1165
+ response = await requestVtecx(method, url, req);
1166
+ }
1167
+ catch (e) {
1168
+ throw newFetchError(e, true);
1169
+ }
960
1170
  //console.log(`[vtecxnext getSessionString] response. status=${response.status}`)
961
1171
  // vte.cxからのset-cookieを転記
962
1172
  setCookie(response, res);
@@ -986,7 +1196,13 @@ const getSessionLong = async (req, res, name) => {
986
1196
  // vte.cxへリクエスト
987
1197
  const method = 'GET';
988
1198
  const url = `/p/?_sessionlong=${name}`;
989
- const response = await requestVtecx(method, url, req);
1199
+ let response;
1200
+ try {
1201
+ response = await requestVtecx(method, url, req);
1202
+ }
1203
+ catch (e) {
1204
+ throw newFetchError(e, true);
1205
+ }
990
1206
  //console.log(`[vtecxnext getSessionLong] response. status=${response.status}`)
991
1207
  // vte.cxからのset-cookieを転記
992
1208
  setCookie(response, res);
@@ -1017,7 +1233,13 @@ const pagination = async (req, res, uri, pagerange, targetService) => {
1017
1233
  // vte.cxへリクエスト
1018
1234
  const method = 'GET';
1019
1235
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}_pagination=${pagerange}`;
1020
- const response = await requestVtecx(method, url, req, null, null, targetService);
1236
+ let response;
1237
+ try {
1238
+ response = await requestVtecx(method, url, req, null, null, targetService);
1239
+ }
1240
+ catch (e) {
1241
+ throw newFetchError(e, true);
1242
+ }
1021
1243
  //console.log(`[vtecxnext pagination] response=${response}`)
1022
1244
  // vte.cxからのset-cookieを転記
1023
1245
  setCookie(response, res);
@@ -1043,7 +1265,13 @@ const getPage = async (req, res, uri, num, targetService) => {
1043
1265
  // vte.cxへリクエスト
1044
1266
  const method = 'GET';
1045
1267
  const url = `/p${uri}${uri.includes('?') ? '&' : '?'}n=${num}`;
1046
- const response = await requestVtecx(method, url, req, null, null, targetService);
1268
+ let response;
1269
+ try {
1270
+ response = await requestVtecx(method, url, req, null, null, targetService);
1271
+ }
1272
+ catch (e) {
1273
+ throw newFetchError(e, true);
1274
+ }
1047
1275
  //console.log(`[vtecxnext getPage] response=${response}`)
1048
1276
  // vte.cxからのset-cookieを転記
1049
1277
  setCookie(response, res);
@@ -1076,7 +1304,13 @@ const postBQ = async (req, res, feed, async, tablenames) => {
1076
1304
  // vte.cxへリクエスト
1077
1305
  const method = 'POST';
1078
1306
  const url = `/p/?_bq${async ? '&_async' : ''}`;
1079
- const response = await requestVtecx(method, url, req, JSON.stringify(reqFeed));
1307
+ let response;
1308
+ try {
1309
+ response = await requestVtecx(method, url, req, JSON.stringify(reqFeed));
1310
+ }
1311
+ catch (e) {
1312
+ throw newFetchError(e, true);
1313
+ }
1080
1314
  //console.log(`[vtecxnext postBQ] response. status=${response.status}`)
1081
1315
  // vte.cxからのset-cookieを転記
1082
1316
  setCookie(response, res);
@@ -1117,7 +1351,13 @@ const deleteBQ = async (req, res, keys, async, tablenames) => {
1117
1351
  // vte.cxへリクエスト
1118
1352
  const method = 'DELETE';
1119
1353
  const url = `/p/?_bq${async ? '&_async' : ''}`;
1120
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1354
+ let response;
1355
+ try {
1356
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
1357
+ }
1358
+ catch (e) {
1359
+ throw newFetchError(e, true);
1360
+ }
1121
1361
  //console.log(`[vtecxnext deleteBQ] response. status=${response.status}`)
1122
1362
  // vte.cxからのset-cookieを転記
1123
1363
  setCookie(response, res);
@@ -1144,7 +1384,13 @@ const getBQ = async (req, res, sql, values, parent) => {
1144
1384
  // vte.cxへリクエスト
1145
1385
  const method = 'PUT';
1146
1386
  const url = `/p/?_querybq`;
1147
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1387
+ let response;
1388
+ try {
1389
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
1390
+ }
1391
+ catch (e) {
1392
+ throw newFetchError(e, true);
1393
+ }
1148
1394
  //console.log(`[vtecxnext getBQ] response. status=${response.status}`)
1149
1395
  // vte.cxからのset-cookieを転記
1150
1396
  setCookie(response, res);
@@ -1175,7 +1421,13 @@ const getBQCsv = async (req, res, sql, values, filename, parent) => {
1175
1421
  // vte.cxへリクエスト
1176
1422
  const method = 'PUT';
1177
1423
  const url = `/p/?_querybq&_csv${filename ? '=' + filename : ''}`;
1178
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1424
+ let response;
1425
+ try {
1426
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
1427
+ }
1428
+ catch (e) {
1429
+ throw newFetchError(e, true);
1430
+ }
1179
1431
  //console.log(`[vtecxnext getBQCsv] response. status=${response.status}`)
1180
1432
  // vte.cxからのset-cookieを転記
1181
1433
  setCookie(response, res);
@@ -1207,7 +1459,13 @@ const toPdf = async (req, res, htmlTemplate, filename) => {
1207
1459
  // vte.cxへリクエスト
1208
1460
  const method = 'PUT';
1209
1461
  const url = `/p/?_pdf${filename ? '=' + filename : ''}`;
1210
- const response = await requestVtecx(method, url, req, htmlTemplate);
1462
+ let response;
1463
+ try {
1464
+ response = await requestVtecx(method, url, req, htmlTemplate);
1465
+ }
1466
+ catch (e) {
1467
+ throw newFetchError(e, true);
1468
+ }
1211
1469
  //console.log(`[vtecxnext toPdf] response. status=${response.status}`)
1212
1470
  // vte.cxからのset-cookieを転記
1213
1471
  setCookie(response, res);
@@ -1238,7 +1496,13 @@ const putSignature = async (req, res, uri, revision) => {
1238
1496
  // vte.cxへリクエスト
1239
1497
  const method = 'PUT';
1240
1498
  const url = `/p${uri}?_signature${revision ? '&r=' + revision : ''}`;
1241
- const response = await requestVtecx(method, url, req);
1499
+ let response;
1500
+ try {
1501
+ response = await requestVtecx(method, url, req);
1502
+ }
1503
+ catch (e) {
1504
+ throw newFetchError(e, true);
1505
+ }
1242
1506
  //console.log(`[vtecxnext putSignature] response=${response}`)
1243
1507
  // vte.cxからのset-cookieを転記
1244
1508
  setCookie(response, res);
@@ -1262,7 +1526,13 @@ const putSignatures = async (req, res, feed) => {
1262
1526
  // vte.cxへリクエスト
1263
1527
  const method = 'PUT';
1264
1528
  const url = `/p/?_signature`;
1265
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1529
+ let response;
1530
+ try {
1531
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
1532
+ }
1533
+ catch (e) {
1534
+ throw newFetchError(e, true);
1535
+ }
1266
1536
  //console.log(`[vtecxnext putSignatures] response=${response}`)
1267
1537
  // vte.cxからのset-cookieを転記
1268
1538
  setCookie(response, res);
@@ -1287,7 +1557,13 @@ const deleteSignature = async (req, res, uri, revision) => {
1287
1557
  // vte.cxへリクエスト
1288
1558
  const method = 'DELETE';
1289
1559
  const url = `/p${uri}?_signature${revision ? '&r=' + revision : ''}`;
1290
- const response = await requestVtecx(method, url, req);
1560
+ let response;
1561
+ try {
1562
+ response = await requestVtecx(method, url, req);
1563
+ }
1564
+ catch (e) {
1565
+ throw newFetchError(e, true);
1566
+ }
1291
1567
  //console.log(`[vtecxnext deleteSignature] response=${response}`)
1292
1568
  // vte.cxからのset-cookieを転記
1293
1569
  setCookie(response, res);
@@ -1310,7 +1586,13 @@ const checkSignature = async (req, res, uri) => {
1310
1586
  // vte.cxへリクエスト
1311
1587
  const method = 'GET';
1312
1588
  const url = `/p${uri}?_signature`;
1313
- const response = await requestVtecx(method, url, req);
1589
+ let response;
1590
+ try {
1591
+ response = await requestVtecx(method, url, req);
1592
+ }
1593
+ catch (e) {
1594
+ throw newFetchError(e, true);
1595
+ }
1314
1596
  //console.log(`[vtecxnext checkSignature] response=${response}`)
1315
1597
  // vte.cxからのset-cookieを転記
1316
1598
  setCookie(response, res);
@@ -1365,7 +1647,13 @@ const sendMail = async (req, res, entry, to, cc, bcc, attachments) => {
1365
1647
  // vte.cxへリクエスト
1366
1648
  const method = 'POST';
1367
1649
  const url = `/p/?_sendmail`;
1368
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1650
+ let response;
1651
+ try {
1652
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
1653
+ }
1654
+ catch (e) {
1655
+ throw newFetchError(e, true);
1656
+ }
1369
1657
  //console.log(`[vtecxnext sendMail] response. status=${response.status}`)
1370
1658
  // vte.cxからのset-cookieを転記
1371
1659
  setCookie(response, res);
@@ -1429,7 +1717,13 @@ const pushNotification = async (req, res, message, to, title, subtitle, imageUrl
1429
1717
  // vte.cxへリクエスト
1430
1718
  const method = 'POST';
1431
1719
  const url = `/p/?_pushnotification`;
1432
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1720
+ let response;
1721
+ try {
1722
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
1723
+ }
1724
+ catch (e) {
1725
+ throw newFetchError(e, true);
1726
+ }
1433
1727
  //console.log(`[vtecxnext pushNotification] response. status=${response.status}`)
1434
1728
  // vte.cxからのset-cookieを転記
1435
1729
  setCookie(response, res);
@@ -1452,7 +1746,13 @@ const setMessageQueueStatus = async (req, res, flag, channel) => {
1452
1746
  // vte.cxへリクエスト
1453
1747
  const method = 'PUT';
1454
1748
  const url = `/p${channel}?_mqstatus=${flag ? 'true' : 'false'}`;
1455
- const response = await requestVtecx(method, url, req);
1749
+ let response;
1750
+ try {
1751
+ response = await requestVtecx(method, url, req);
1752
+ }
1753
+ catch (e) {
1754
+ throw newFetchError(e, true);
1755
+ }
1456
1756
  //console.log(`[vtecxnext setMessageQueueStatus] response=${response}`)
1457
1757
  // vte.cxからのset-cookieを転記
1458
1758
  setCookie(response, res);
@@ -1477,7 +1777,13 @@ const setMessageQueue = async (req, res, feed, channel) => {
1477
1777
  // vte.cxへリクエスト
1478
1778
  const method = 'POST';
1479
1779
  const url = `/p${channel}?_mq`;
1480
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
1780
+ let response;
1781
+ try {
1782
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
1783
+ }
1784
+ catch (e) {
1785
+ throw newFetchError(e, true);
1786
+ }
1481
1787
  //console.log(`[vtecxnext setMessageQueue] response. status=${response.status}`)
1482
1788
  // vte.cxからのset-cookieを転記
1483
1789
  setCookie(response, res);
@@ -1500,7 +1806,13 @@ const getMessageQueue = async (req, res, channel) => {
1500
1806
  // vte.cxへリクエスト
1501
1807
  const method = 'GET';
1502
1808
  const url = `/p${channel}?_mq`;
1503
- const response = await requestVtecx(method, url, req);
1809
+ let response;
1810
+ try {
1811
+ response = await requestVtecx(method, url, req);
1812
+ }
1813
+ catch (e) {
1814
+ throw newFetchError(e, true);
1815
+ }
1504
1816
  //console.log(`[vtecxnext getMessageQueue] response. status=${response.status}`)
1505
1817
  // vte.cxからのset-cookieを転記
1506
1818
  setCookie(response, res);
@@ -1526,7 +1838,13 @@ const joinGroup = async (req, res, group, selfid) => {
1526
1838
  // vte.cxへリクエスト
1527
1839
  const method = 'PUT';
1528
1840
  const url = `/p${group}?_joingroup&_selfid=${selfid}`;
1529
- const response = await requestVtecx(method, url, req);
1841
+ let response;
1842
+ try {
1843
+ response = await requestVtecx(method, url, req);
1844
+ }
1845
+ catch (e) {
1846
+ throw newFetchError(e, true);
1847
+ }
1530
1848
  //console.log(`[vtecxnext joinGroup] response. status=${response.status}`)
1531
1849
  // vte.cxからのset-cookieを転記
1532
1850
  setCookie(response, res);
@@ -1550,7 +1868,13 @@ const leaveGroup = async (req, res, group) => {
1550
1868
  // vte.cxへリクエスト
1551
1869
  const method = 'DELETE';
1552
1870
  const url = `/p${group}?_leavegroup`;
1553
- const response = await requestVtecx(method, url, req);
1871
+ let response;
1872
+ try {
1873
+ response = await requestVtecx(method, url, req);
1874
+ }
1875
+ catch (e) {
1876
+ throw newFetchError(e, true);
1877
+ }
1554
1878
  //console.log(`[vtecxnext leaveGroup] response. status=${response.status}`)
1555
1879
  // vte.cxからのset-cookieを転記
1556
1880
  setCookie(response, res);
@@ -1575,7 +1899,13 @@ const noGroupMember = async (req, res, uri) => {
1575
1899
  // vte.cxへリクエスト
1576
1900
  const method = 'GET';
1577
1901
  const url = `/d${uri}?_no_group_member`;
1578
- const response = await requestVtecx(method, url, req);
1902
+ let response;
1903
+ try {
1904
+ response = await requestVtecx(method, url, req);
1905
+ }
1906
+ catch (e) {
1907
+ throw newFetchError(e, true);
1908
+ }
1579
1909
  //console.log(`[vtecxnext noGroupMember] response=${response}`)
1580
1910
  // vte.cxからのset-cookieを転記
1581
1911
  setCookie(response, res);
@@ -1585,6 +1915,75 @@ const noGroupMember = async (req, res, uri) => {
1585
1915
  return await getJson(response);
1586
1916
  };
1587
1917
  exports.noGroupMember = noGroupMember;
1918
+ /**
1919
+ * Get groups
1920
+ * @param req request (for authentication)
1921
+ * @param res response (for authentication)
1922
+ * @param uri group key
1923
+ * @return feed (entry array)
1924
+ */
1925
+ const getGroups = async (req, res) => {
1926
+ //console.log('[vtecxnext getGroups] start.')
1927
+ // vte.cxへリクエスト
1928
+ const method = 'GET';
1929
+ const url = `/d/?_group`;
1930
+ let response;
1931
+ try {
1932
+ response = await requestVtecx(method, url, req);
1933
+ }
1934
+ catch (e) {
1935
+ throw newFetchError(e, true);
1936
+ }
1937
+ //console.log(`[vtecxnext getGroups] response=${response}`)
1938
+ // vte.cxからのset-cookieを転記
1939
+ setCookie(response, res);
1940
+ // レスポンスのエラーチェック
1941
+ await checkVtecxResponse(response);
1942
+ // 戻り値
1943
+ return await getJson(response);
1944
+ };
1945
+ exports.getGroups = getGroups;
1946
+ /**
1947
+ * whether you are in the group
1948
+ * @param req request (for authentication)
1949
+ * @param res response (for authentication)
1950
+ * @param uri group key
1951
+ * @return true/false
1952
+ */
1953
+ const isGroupMember = async (req, res, uri) => {
1954
+ //console.log('[vtecxnext noGroupMember] start.')
1955
+ // キー入力値チェック
1956
+ checkUri(uri);
1957
+ // vte.cxへリクエスト
1958
+ const method = 'GET';
1959
+ const url = `/d${uri}?_is_group_member`;
1960
+ let response;
1961
+ try {
1962
+ response = await requestVtecx(method, url, req);
1963
+ }
1964
+ catch (e) {
1965
+ throw newFetchError(e, true);
1966
+ }
1967
+ //console.log(`[vtecxnext noGroupMember] response=${response}`)
1968
+ // vte.cxからのset-cookieを転記
1969
+ setCookie(response, res);
1970
+ // レスポンスのエラーチェック
1971
+ await checkVtecxResponse(response);
1972
+ // 戻り値
1973
+ const data = await getJson(response);
1974
+ return data?.feed?.title === 'true' ? true : false;
1975
+ };
1976
+ exports.isGroupMember = isGroupMember;
1977
+ /**
1978
+ * whether you are in the admin group
1979
+ * @param req request (for authentication)
1980
+ * @param res response (for authentication)
1981
+ * @return true/false
1982
+ */
1983
+ const isAdmin = async (req, res) => {
1984
+ return await (0, exports.isGroupMember)(req, res, '/_group/$admin');
1985
+ };
1986
+ exports.isAdmin = isAdmin;
1588
1987
  /**
1589
1988
  * add user
1590
1989
  * @param req request (for authentication)
@@ -1601,7 +2000,13 @@ const adduser = async (req, res, feed, reCaptchaToken) => {
1601
2000
  const method = 'POST';
1602
2001
  const param = reCaptchaToken ? `&g-recaptcha-token=${reCaptchaToken}` : '';
1603
2002
  const url = `/d/?_adduser${param}`;
1604
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2003
+ let response;
2004
+ try {
2005
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2006
+ }
2007
+ catch (e) {
2008
+ throw newFetchError(e, true);
2009
+ }
1605
2010
  //console.log(`[vtecxnext adduser] response. status=${response.status}`)
1606
2011
  // vte.cxからのset-cookieを転記
1607
2012
  setCookie(response, res);
@@ -1625,7 +2030,13 @@ const adduserByAdmin = async (req, res, feed) => {
1625
2030
  // vte.cxへリクエスト
1626
2031
  const method = 'POST';
1627
2032
  const url = `/d/?_adduserByAdmin`;
1628
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2033
+ let response;
2034
+ try {
2035
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2036
+ }
2037
+ catch (e) {
2038
+ throw newFetchError(e, true);
2039
+ }
1629
2040
  //console.log(`[vtecxnext adduserByAdmin] response. status=${response.status}`)
1630
2041
  // vte.cxからのset-cookieを転記
1631
2042
  setCookie(response, res);
@@ -1650,7 +2061,13 @@ const passreset = async (req, res, feed, reCaptchaToken) => {
1650
2061
  const method = 'POST';
1651
2062
  const param = reCaptchaToken ? `&g-recaptcha-token=${reCaptchaToken}` : '';
1652
2063
  const url = `/d/?_passreset${param}`;
1653
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2064
+ let response;
2065
+ try {
2066
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2067
+ }
2068
+ catch (e) {
2069
+ throw newFetchError(e, true);
2070
+ }
1654
2071
  //console.log(`[vtecxnext passreset] response. status=${response.status}`)
1655
2072
  // vte.cxからのset-cookieを転記
1656
2073
  setCookie(response, res);
@@ -1673,7 +2090,13 @@ const changepass = async (req, res, feed) => {
1673
2090
  // vte.cxへリクエスト
1674
2091
  const method = 'PUT';
1675
2092
  const url = `/d/?_changephash`;
1676
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2093
+ let response;
2094
+ try {
2095
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2096
+ }
2097
+ catch (e) {
2098
+ throw newFetchError(e, true);
2099
+ }
1677
2100
  //console.log(`[vtecxnext changepass] response. status=${response.status}`)
1678
2101
  // vte.cxからのset-cookieを転記
1679
2102
  setCookie(response, res);
@@ -1696,7 +2119,13 @@ const changepassByAdmin = async (req, res, feed) => {
1696
2119
  // vte.cxへリクエスト
1697
2120
  const method = 'PUT';
1698
2121
  const url = `/d/?_changephashByAdmin`;
1699
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2122
+ let response;
2123
+ try {
2124
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2125
+ }
2126
+ catch (e) {
2127
+ throw newFetchError(e, true);
2128
+ }
1700
2129
  //console.log(`[vtecxnext changepassByAdmin] response. status=${response.status}`)
1701
2130
  // vte.cxからのset-cookieを転記
1702
2131
  setCookie(response, res);
@@ -1719,7 +2148,13 @@ const changeaccount = async (req, res, feed) => {
1719
2148
  // vte.cxへリクエスト
1720
2149
  const method = 'PUT';
1721
2150
  const url = `/d/?_changeaccount`;
1722
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2151
+ let response;
2152
+ try {
2153
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2154
+ }
2155
+ catch (e) {
2156
+ throw newFetchError(e, true);
2157
+ }
1723
2158
  //console.log(`[vtecxnext changeaccount] response. status=${response.status}`)
1724
2159
  // vte.cxからのset-cookieを転記
1725
2160
  setCookie(response, res);
@@ -1742,7 +2177,13 @@ const changeaccount_verify = async (req, res, verifyCode) => {
1742
2177
  // vte.cxへリクエスト
1743
2178
  const method = 'PUT';
1744
2179
  const url = `/d/?_changeaccount_verify=${verifyCode}`;
1745
- const response = await requestVtecx(method, url, req);
2180
+ let response;
2181
+ try {
2182
+ response = await requestVtecx(method, url, req);
2183
+ }
2184
+ catch (e) {
2185
+ throw newFetchError(e, true);
2186
+ }
1746
2187
  //console.log(`[vtecxnext changeaccount_verify] response=${response}`)
1747
2188
  // vte.cxからのset-cookieを転記
1748
2189
  setCookie(response, res);
@@ -1764,7 +2205,13 @@ const userstatus = async (req, res, account) => {
1764
2205
  // vte.cxへリクエスト
1765
2206
  const method = 'GET';
1766
2207
  const url = `/d/?_userstatus${account ? '=' + account : ''}`;
1767
- const response = await requestVtecx(method, url, req);
2208
+ let response;
2209
+ try {
2210
+ response = await requestVtecx(method, url, req);
2211
+ }
2212
+ catch (e) {
2213
+ throw newFetchError(e, true);
2214
+ }
1768
2215
  //console.log(`[vtecxnext userstatus] response=${response}`)
1769
2216
  // vte.cxからのset-cookieを転記
1770
2217
  setCookie(response, res);
@@ -1788,7 +2235,13 @@ const revokeuser = async (req, res, account) => {
1788
2235
  // vte.cxへリクエスト
1789
2236
  const method = 'PUT';
1790
2237
  const url = `/d/?_revokeuser=${account}`;
1791
- const response = await requestVtecx(method, url, req);
2238
+ let response;
2239
+ try {
2240
+ response = await requestVtecx(method, url, req);
2241
+ }
2242
+ catch (e) {
2243
+ throw newFetchError(e, true);
2244
+ }
1792
2245
  //console.log(`[vtecxnext revokeuser] response=${response}`)
1793
2246
  // vte.cxからのset-cookieを転記
1794
2247
  setCookie(response, res);
@@ -1812,7 +2265,13 @@ const revokeusers = async (req, res, feed) => {
1812
2265
  // vte.cxへリクエスト
1813
2266
  const method = 'PUT';
1814
2267
  const url = `/d/?_revokeuser`;
1815
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2268
+ let response;
2269
+ try {
2270
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2271
+ }
2272
+ catch (e) {
2273
+ throw newFetchError(e, true);
2274
+ }
1816
2275
  //console.log(`[vtecxnext revokeusers] response. status=${response.status}`)
1817
2276
  // vte.cxからのset-cookieを転記
1818
2277
  setCookie(response, res);
@@ -1835,7 +2294,13 @@ const activateuser = async (req, res, account) => {
1835
2294
  // vte.cxへリクエスト
1836
2295
  const method = 'PUT';
1837
2296
  const url = `/d/?_activateuser=${account}`;
1838
- const response = await requestVtecx(method, url, req);
2297
+ let response;
2298
+ try {
2299
+ response = await requestVtecx(method, url, req);
2300
+ }
2301
+ catch (e) {
2302
+ throw newFetchError(e, true);
2303
+ }
1839
2304
  //console.log(`[vtecxnext activateuser] response=${response}`)
1840
2305
  // vte.cxからのset-cookieを転記
1841
2306
  setCookie(response, res);
@@ -1859,7 +2324,13 @@ const activateusers = async (req, res, feed) => {
1859
2324
  // vte.cxへリクエスト
1860
2325
  const method = 'PUT';
1861
2326
  const url = `/d/?_activateuser`;
1862
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2327
+ let response;
2328
+ try {
2329
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2330
+ }
2331
+ catch (e) {
2332
+ throw newFetchError(e, true);
2333
+ }
1863
2334
  //console.log(`[vtecxnext activateusers] response. status=${response.status}`)
1864
2335
  // vte.cxからのset-cookieを転記
1865
2336
  setCookie(response, res);
@@ -1880,7 +2351,13 @@ const canceluser = async (req, res) => {
1880
2351
  // vte.cxへリクエスト
1881
2352
  const method = 'DELETE';
1882
2353
  const url = `/d/?_canceluser`;
1883
- const response = await requestVtecx(method, url, req);
2354
+ let response;
2355
+ try {
2356
+ response = await requestVtecx(method, url, req);
2357
+ }
2358
+ catch (e) {
2359
+ throw newFetchError(e, true);
2360
+ }
1884
2361
  //console.log(`[vtecxnext canceluser] response=${response}`)
1885
2362
  // vte.cxからのset-cookieを転記
1886
2363
  setCookie(response, res);
@@ -1904,7 +2381,13 @@ const deleteuser = async (req, res, account) => {
1904
2381
  // vte.cxへリクエスト
1905
2382
  const method = 'DELETE';
1906
2383
  const url = `/d/?_deleteuser=${account}`;
1907
- const response = await requestVtecx(method, url, req);
2384
+ let response;
2385
+ try {
2386
+ response = await requestVtecx(method, url, req);
2387
+ }
2388
+ catch (e) {
2389
+ throw newFetchError(e, true);
2390
+ }
1908
2391
  //console.log(`[vtecxnext deleteuser] response=${response}`)
1909
2392
  // vte.cxからのset-cookieを転記
1910
2393
  setCookie(response, res);
@@ -1928,7 +2411,13 @@ const deleteusers = async (req, res, feed) => {
1928
2411
  // vte.cxへリクエスト
1929
2412
  const method = 'DELETE';
1930
2413
  const url = `/d/?_deleteuser`;
1931
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2414
+ let response;
2415
+ try {
2416
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2417
+ }
2418
+ catch (e) {
2419
+ throw newFetchError(e, true);
2420
+ }
1932
2421
  //console.log(`[vtecxnext deleteusers] response. status=${response.status}`)
1933
2422
  // vte.cxからのset-cookieを転記
1934
2423
  setCookie(response, res);
@@ -2044,7 +2533,13 @@ const putcontent = async (req, res, uri) => {
2044
2533
  //const headers = {'Content-Type' : req.headers['content-type'], 'Content-Length' : req.headers['content-length']}
2045
2534
  const headers = { 'Content-Type': req.headers['content-type'] };
2046
2535
  const buf = await (0, exports.buffer)(req);
2047
- const response = await requestVtecx(method, url, req, buf, headers);
2536
+ let response;
2537
+ try {
2538
+ response = await requestVtecx(method, url, req, buf, headers);
2539
+ }
2540
+ catch (e) {
2541
+ throw newFetchError(e, true);
2542
+ }
2048
2543
  //console.log(`[vtecxnext putcontent] response. status=${response.status}`)
2049
2544
  // vte.cxからのset-cookieを転記
2050
2545
  setCookie(response, res);
@@ -2067,7 +2562,13 @@ const deletecontent = async (req, res, uri) => {
2067
2562
  // vte.cxへリクエスト
2068
2563
  const method = 'DELETE';
2069
2564
  const url = `/p${uri}?_content`;
2070
- const response = await requestVtecx(method, url, req);
2565
+ let response;
2566
+ try {
2567
+ response = await requestVtecx(method, url, req);
2568
+ }
2569
+ catch (e) {
2570
+ throw newFetchError(e, true);
2571
+ }
2071
2572
  //console.log(`[vtecxnext deletecontent] response. status=${response.status}`)
2072
2573
  // vte.cxからのset-cookieを転記
2073
2574
  setCookie(response, res);
@@ -2091,7 +2592,13 @@ const getcontent = async (req, res, uri) => {
2091
2592
  // vte.cxへリクエスト
2092
2593
  const method = 'GET';
2093
2594
  const url = `/p${uri}?_content`;
2094
- const response = await requestVtecx(method, url, req);
2595
+ let response;
2596
+ try {
2597
+ response = await requestVtecx(method, url, req);
2598
+ }
2599
+ catch (e) {
2600
+ throw newFetchError(e, true);
2601
+ }
2095
2602
  //console.log(`[vtecxnext getcontent] response. status=${response.status}`)
2096
2603
  // vte.cxからのset-cookieを転記
2097
2604
  setCookie(response, res);
@@ -2127,7 +2634,13 @@ const addacl = async (req, res, feed) => {
2127
2634
  // vte.cxへリクエスト
2128
2635
  const method = 'PUT';
2129
2636
  const url = `/d/?_addacl`;
2130
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2637
+ let response;
2638
+ try {
2639
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2640
+ }
2641
+ catch (e) {
2642
+ throw newFetchError(e, true);
2643
+ }
2131
2644
  //console.log(`[vtecxnext addacl] response=${response}`)
2132
2645
  // vte.cxからのset-cookieを転記
2133
2646
  setCookie(response, res);
@@ -2151,7 +2664,13 @@ const removeacl = async (req, res, feed) => {
2151
2664
  // vte.cxへリクエスト
2152
2665
  const method = 'PUT';
2153
2666
  const url = `/d/?_removeacl`;
2154
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2667
+ let response;
2668
+ try {
2669
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2670
+ }
2671
+ catch (e) {
2672
+ throw newFetchError(e, true);
2673
+ }
2155
2674
  //console.log(`[vtecxnext removeacl] response=${response}`)
2156
2675
  // vte.cxからのset-cookieを転記
2157
2676
  setCookie(response, res);
@@ -2175,7 +2694,13 @@ const addalias = async (req, res, feed) => {
2175
2694
  // vte.cxへリクエスト
2176
2695
  const method = 'PUT';
2177
2696
  const url = `/d/?_addalias`;
2178
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2697
+ let response;
2698
+ try {
2699
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2700
+ }
2701
+ catch (e) {
2702
+ throw newFetchError(e, true);
2703
+ }
2179
2704
  //console.log(`[vtecxnext addalias] response=${response}`)
2180
2705
  // vte.cxからのset-cookieを転記
2181
2706
  setCookie(response, res);
@@ -2199,7 +2724,13 @@ const removealias = async (req, res, feed) => {
2199
2724
  // vte.cxへリクエスト
2200
2725
  const method = 'PUT';
2201
2726
  const url = `/d/?_removealias`;
2202
- const response = await requestVtecx(method, url, req, JSON.stringify(feed));
2727
+ let response;
2728
+ try {
2729
+ response = await requestVtecx(method, url, req, JSON.stringify(feed));
2730
+ }
2731
+ catch (e) {
2732
+ throw newFetchError(e, true);
2733
+ }
2203
2734
  //console.log(`[vtecxnext removealias] response=${response}`)
2204
2735
  // vte.cxからのset-cookieを転記
2205
2736
  setCookie(response, res);
@@ -2263,6 +2794,20 @@ class VtecxNextError extends Error {
2263
2794
  }
2264
2795
  }
2265
2796
  exports.VtecxNextError = VtecxNextError;
2797
+ /**
2798
+ * Fetch Error
2799
+ */
2800
+ class FetchError extends VtecxNextError {
2801
+ //url:string
2802
+ //requestInit:RequestInit
2803
+ constructor(message) {
2804
+ super(500, message);
2805
+ this.name = 'FetchError';
2806
+ //this.url = url
2807
+ //this.requestInit = requestInit
2808
+ }
2809
+ }
2810
+ exports.FetchError = FetchError;
2266
2811
  //---------------------------------------------
2267
2812
  /**
2268
2813
  * vte.cxへリクエスト
@@ -2319,7 +2864,31 @@ const fetchVtecx = async (method, url, headers, body, mode) => {
2319
2864
  if (mode) {
2320
2865
  requestInit['mode'] = mode;
2321
2866
  }
2322
- return fetch(`${process.env.VTECX_URL}${url}`, requestInit);
2867
+ return fetchProc(`${VTECX_URL}${url}`, requestInit);
2868
+ };
2869
+ /** vte.cx URL */
2870
+ const VTECX_URL = process.env.VTECX_URL ?? '';
2871
+ const newFetchError = (e, isVtecx) => {
2872
+ let errMsg;
2873
+ if (e instanceof Error) {
2874
+ const errName = isVtecx ? 'VtecxFetchError' : 'FetchError';
2875
+ errMsg = `${errName}: ${e.message}`;
2876
+ }
2877
+ else {
2878
+ errMsg = `Unexpected error.`;
2879
+ }
2880
+ console.log(`[vtecxnext fetchProc] errMsg = ${errMsg}`);
2881
+ return new FetchError(errMsg);
2882
+ };
2883
+ /**
2884
+ * fetch処理。try-catchを行う。
2885
+ * @param url URL
2886
+ * @param requestInit RequestInit
2887
+ * @returns Promise
2888
+ */
2889
+ const fetchProc = (url, requestInit) => {
2890
+ //console.log(`[vtecxnext fetchProc] url=${url}`)
2891
+ return fetch(url, requestInit);
2323
2892
  };
2324
2893
  /**
2325
2894
  * vte.cxからのset-cookieを、ブラウザへレスポンスする。
@@ -2383,7 +2952,7 @@ const checkVtecxResponse = async (response) => {
2383
2952
  if (data && data.feed) {
2384
2953
  message = data.feed.title;
2385
2954
  }
2386
- message = message ? message : `status=${response.status}`;
2955
+ message = message ?? `status=${response.status}`;
2387
2956
  throw new VtecxNextError(response.status, message);
2388
2957
  }
2389
2958
  };
@@ -2396,7 +2965,7 @@ const checkVtecxResponse = async (response) => {
2396
2965
  */
2397
2966
  const checkNotNull = (val, name) => {
2398
2967
  if (!val) {
2399
- throw new VtecxNextError(400, `${name ? name : 'Key'} is required.`);
2968
+ throw new VtecxNextError(400, `${name ?? 'Key'} is required.`);
2400
2969
  }
2401
2970
  };
2402
2971
  /**
@@ -2410,7 +2979,7 @@ const checkNotNull = (val, name) => {
2410
2979
  const checkUri = (str, name) => {
2411
2980
  checkNotNull(str, name);
2412
2981
  if (!str.startsWith('/')) {
2413
- throw new VtecxNextError(400, `${name ? name : 'Key'} must start with a slash.`);
2982
+ throw new VtecxNextError(400, `${name ?? 'Key'} must start with a slash.`);
2414
2983
  }
2415
2984
  };
2416
2985
  /**
@@ -2427,11 +2996,14 @@ const getJson = async (response) => {
2427
2996
  return await response.json();
2428
2997
  }
2429
2998
  catch (e) {
2999
+ let errMsg;
2430
3000
  if (e instanceof Error) {
2431
- const error = e;
2432
- //console.log(`[getJson] Error occured. ${error.name}: ${error.message}`)
3001
+ errMsg = `JsonError: ${e.message}`;
2433
3002
  }
2434
- return null;
3003
+ else {
3004
+ errMsg = `JsonError: unexpected error`;
3005
+ }
3006
+ throw new VtecxNextError(500, errMsg);
2435
3007
  }
2436
3008
  };
2437
3009
  /**
@@ -2519,7 +3091,13 @@ const oauth = async (req, res, provider, oauthUrl) => {
2519
3091
  // vte.cxへリクエスト (state取得)
2520
3092
  const method = 'POST';
2521
3093
  const url = `/o/${provider}/create_state`;
2522
- const response = await requestVtecx(method, url, req);
3094
+ let response;
3095
+ try {
3096
+ response = await requestVtecx(method, url, req);
3097
+ }
3098
+ catch (e) {
3099
+ throw newFetchError(e, true);
3100
+ }
2523
3101
  // レスポンスのエラーチェック
2524
3102
  await checkVtecxResponse(response);
2525
3103
  // 戻り値
@@ -2557,7 +3135,7 @@ const oauth = async (req, res, provider, oauthUrl) => {
2557
3135
  const oauthGetAccesstoken = async (req, res, provider, accesstokenUrl) => {
2558
3136
  //console.log(`[vtecxnext oauthGetAccesstoken] start. provider=${provider} oauthUrl=${accesstokenUrl}`)
2559
3137
  // stateチェック
2560
- const parseUrl = url_1.default.parse(req.url ? req.url : '', true);
3138
+ const parseUrl = url_1.default.parse(req.url ?? '', true);
2561
3139
  const state = parseUrl.query.state;
2562
3140
  const code = parseUrl.query.code;
2563
3141
  if (!state) {
@@ -2570,7 +3148,13 @@ const oauthGetAccesstoken = async (req, res, provider, accesstokenUrl) => {
2570
3148
  const vtecxMethod = 'POST';
2571
3149
  const vtecxUrl = `/o/${provider}/check_state?state=${state}`;
2572
3150
  //console.log(`[vtecxnext oauthGetAccesstoken] vtecxUrl=${vtecxUrl}`)
2573
- const vtecxResponse = await requestVtecx(vtecxMethod, vtecxUrl, req);
3151
+ let vtecxResponse;
3152
+ try {
3153
+ vtecxResponse = await requestVtecx(vtecxMethod, vtecxUrl, req);
3154
+ }
3155
+ catch (e) {
3156
+ throw newFetchError(e, true);
3157
+ }
2574
3158
  //console.log(`[vtecxnext oauthGetAccesstoken] check_state response status=${vtecxResponse.status}`)
2575
3159
  // vte.cxからのset-cookieを転記
2576
3160
  setCookie(vtecxResponse, res);
@@ -2608,7 +3192,13 @@ const oauthGetAccesstoken = async (req, res, provider, accesstokenUrl) => {
2608
3192
  body: accesstokenBody,
2609
3193
  method: accesstokenMethod
2610
3194
  };
2611
- const accesstokenResponse = await fetch(accesstokenUrl, requestInit);
3195
+ let accesstokenResponse;
3196
+ try {
3197
+ accesstokenResponse = await fetchProc(accesstokenUrl, requestInit);
3198
+ }
3199
+ catch (e) {
3200
+ throw newFetchError(e, false);
3201
+ }
2612
3202
  if (accesstokenResponse.status !== 200) {
2613
3203
  const errorInfo = await accesstokenResponse.json();
2614
3204
  //console.log(`[vtecxnext oauthGetAccesstoken] Get accesstoken failed. ${JSON.stringify(errorInfo)}`)
@@ -2646,7 +3236,13 @@ const oauthGetUserinfoLine = async (req, res, oauthInfo) => {
2646
3236
  headers: headers,
2647
3237
  method: method
2648
3238
  };
2649
- const response = await fetch(url, requestInit);
3239
+ let response;
3240
+ try {
3241
+ response = await fetchProc(url, requestInit);
3242
+ }
3243
+ catch (e) {
3244
+ throw newFetchError(e, false);
3245
+ }
2650
3246
  if (response.status !== 200) {
2651
3247
  throw new VtecxNextError(401, `Get user information failed. status=${response.status}`);
2652
3248
  }
@@ -2679,7 +3275,13 @@ const oauthLink = async (req, res, provider, userInfo) => {
2679
3275
  const method = 'POST';
2680
3276
  const url = `/o/${provider}/link?state=${userInfo.state}${param}`;
2681
3277
  const reqFeed = [{ 'title': userInfo.guid, 'subtitle': userInfo.nickname }];
2682
- const response = await fetchVtecx(method, url, {}, JSON.stringify(reqFeed));
3278
+ let response;
3279
+ try {
3280
+ response = await fetchVtecx(method, url, {}, JSON.stringify(reqFeed));
3281
+ }
3282
+ catch (e) {
3283
+ throw newFetchError(e, true);
3284
+ }
2683
3285
  const feed = await response.json();
2684
3286
  // vte.cxからのset-cookieを転記
2685
3287
  setCookie(response, res);