@vtecx/vtecxnext 3.0.3 → 3.0.5

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.
@@ -113,6 +113,10 @@ export interface OAuthUserInfo {
113
113
  nickname?: string;
114
114
  state?: string | string[];
115
115
  }
116
+ export interface IndexInfo {
117
+ uri?: string;
118
+ fields?: string[];
119
+ }
116
120
  /**
117
121
  * vtecxnext.
118
122
  * Executes various operations for the vte.cx service.
@@ -1061,6 +1065,40 @@ export declare class VtecxNext {
1061
1065
  * @return property value
1062
1066
  */
1063
1067
  property: (name: string) => Promise<string | null>;
1068
+ /**
1069
+ * update index.
1070
+ * for service admin function
1071
+ * @param indexInfos update index information
1072
+ */
1073
+ updateIndex: (indexInfos: IndexInfo[]) => Promise<void>;
1074
+ /**
1075
+ * delete index.
1076
+ * for service admin function
1077
+ * @param indexInfos delete index information
1078
+ */
1079
+ deleteIndex: (indexInfos: IndexInfo[]) => Promise<void>;
1080
+ /**
1081
+ * get access count
1082
+ * @return access count
1083
+ */
1084
+ accesscount: () => Promise<number>;
1085
+ /**
1086
+ * get storage usage
1087
+ * @return storage usage
1088
+ */
1089
+ storageusage: () => Promise<number>;
1090
+ /**
1091
+ * convert index informations to argument entry
1092
+ * @param indexInfos index informations
1093
+ * @returns feed
1094
+ */
1095
+ private convertIndexInfoToEntries;
1096
+ /**
1097
+ * convert index fields to comma-separated string
1098
+ * @param fields index fields
1099
+ * @returns comma-separated string
1100
+ */
1101
+ private convertIndexFields;
1064
1102
  /**
1065
1103
  * vte.cxへリクエスト
1066
1104
  * @param method メソッド
package/dist/vtecxnext.js CHANGED
@@ -244,7 +244,7 @@ class VtecxNext {
244
244
  //console.log('[vtecxnext now] start.')
245
245
  // vte.cxへリクエスト
246
246
  const method = 'GET';
247
- const url = '/d/?_now';
247
+ const url = `${SERVLETPATH_DATA}/?_now`;
248
248
  let response;
249
249
  try {
250
250
  response = await this.requestVtecx(method, url);
@@ -267,7 +267,7 @@ class VtecxNext {
267
267
  //console.log('[vtecxnext uid] start.')
268
268
  // vte.cxへリクエスト
269
269
  const method = 'GET';
270
- const url = '/d/?_uid';
270
+ const url = `${SERVLETPATH_DATA}/?_uid`;
271
271
  let response;
272
272
  try {
273
273
  response = await this.requestVtecx(method, url);
@@ -292,7 +292,7 @@ class VtecxNext {
292
292
  //console.log('[vtecxnext account] start.')
293
293
  // vte.cxへリクエスト
294
294
  const method = 'GET';
295
- const url = '/d/?_account';
295
+ const url = `${SERVLETPATH_DATA}/?_account`;
296
296
  let response;
297
297
  try {
298
298
  response = await this.requestVtecx(method, url);
@@ -318,7 +318,7 @@ class VtecxNext {
318
318
  //console.log('[vtecxnext service] start.')
319
319
  // vte.cxへリクエスト
320
320
  const method = 'GET';
321
- const url = '/d/?_service';
321
+ const url = `${SERVLETPATH_DATA}/?_service`;
322
322
  let response;
323
323
  try {
324
324
  response = await this.requestVtecx(method, url);
@@ -343,7 +343,7 @@ class VtecxNext {
343
343
  //console.log('[vtecxnext rxid] start.')
344
344
  // vte.cxへリクエスト
345
345
  const method = 'GET';
346
- const url = '/d/?_getrxid';
346
+ const url = `${SERVLETPATH_DATA}/?_getrxid`;
347
347
  let response;
348
348
  try {
349
349
  response = await this.requestVtecx(method, url);
@@ -462,7 +462,7 @@ class VtecxNext {
462
462
  //console.log('[vtecxnext logout] start.')
463
463
  // vte.cxへリクエスト
464
464
  const method = 'POST';
465
- const url = '/d/?_logout';
465
+ const url = `${SERVLETPATH_DATA}/?_logout`;
466
466
  let response;
467
467
  try {
468
468
  response = await this.requestVtecx(method, url);
@@ -490,7 +490,7 @@ class VtecxNext {
490
490
  //console.log('[vtecxnext whoami] start.')
491
491
  // vte.cxへリクエスト
492
492
  const method = 'GET';
493
- const url = '/d/?_whoami';
493
+ const url = `${SERVLETPATH_DATA}/?_whoami`;
494
494
  let response;
495
495
  try {
496
496
  response = await this.requestVtecx(method, url);
@@ -3886,6 +3886,154 @@ class VtecxNext {
3886
3886
  const data = await getJson(response);
3887
3887
  return data.feed.title;
3888
3888
  };
3889
+ /**
3890
+ * update index.
3891
+ * for service admin function
3892
+ * @param indexInfos update index information
3893
+ */
3894
+ updateIndex = async (indexInfos) => {
3895
+ //console.log('[vtecxnext updateIndex] start.')
3896
+ const feed = this.convertIndexInfoToEntries(indexInfos);
3897
+ // vte.cxへリクエスト
3898
+ const method = 'PUT';
3899
+ const url = `${SERVLETPATH_DATA}/?_updateindex`;
3900
+ let response;
3901
+ try {
3902
+ response = await this.requestVtecx(method, url, JSON.stringify(feed));
3903
+ }
3904
+ catch (e) {
3905
+ throw newFetchError(e, true);
3906
+ }
3907
+ //console.log(`[vtecxnext updateIndex] response=${response}`)
3908
+ // vte.cxからのset-cookieを転記
3909
+ this.setCookie(response);
3910
+ // レスポンスのエラーチェック
3911
+ await checkVtecxResponse(response);
3912
+ // 戻り値
3913
+ return await getJson(response);
3914
+ };
3915
+ /**
3916
+ * delete index.
3917
+ * for service admin function
3918
+ * @param indexInfos delete index information
3919
+ */
3920
+ deleteIndex = async (indexInfos) => {
3921
+ //console.log('[vtecxnext deleteIndex] start.')
3922
+ const feed = this.convertIndexInfoToEntries(indexInfos);
3923
+ // vte.cxへリクエスト
3924
+ const method = 'PUT';
3925
+ const url = `${SERVLETPATH_DATA}/?_deleteindex`;
3926
+ let response;
3927
+ try {
3928
+ response = await this.requestVtecx(method, url, JSON.stringify(feed));
3929
+ }
3930
+ catch (e) {
3931
+ throw newFetchError(e, true);
3932
+ }
3933
+ //console.log(`[vtecxnext deleteIndex] response=${response}`)
3934
+ // vte.cxからのset-cookieを転記
3935
+ this.setCookie(response);
3936
+ // レスポンスのエラーチェック
3937
+ await checkVtecxResponse(response);
3938
+ // 戻り値
3939
+ return await getJson(response);
3940
+ };
3941
+ /**
3942
+ * get access count
3943
+ * @return access count
3944
+ */
3945
+ accesscount = async () => {
3946
+ //console.log('[vtecxnext accesscount] start.')
3947
+ // vte.cxへリクエスト
3948
+ const method = 'GET';
3949
+ const url = `${SERVLETPATH_DATA}/?_accesscount`;
3950
+ let response;
3951
+ try {
3952
+ response = await this.requestVtecx(method, url);
3953
+ }
3954
+ catch (e) {
3955
+ throw newFetchError(e, true);
3956
+ }
3957
+ //console.log(`[vtecxnext accesscount] response=${response}`)
3958
+ // vte.cxからのset-cookieを転記
3959
+ this.setCookie(response);
3960
+ // レスポンスのエラーチェック
3961
+ await checkVtecxResponse(response);
3962
+ // 戻り値
3963
+ const data = await getJson(response);
3964
+ if (isIntegerString(data.feed.title)) {
3965
+ return Number(data.feed.title);
3966
+ }
3967
+ return 0;
3968
+ };
3969
+ /**
3970
+ * get storage usage
3971
+ * @return storage usage
3972
+ */
3973
+ storageusage = async () => {
3974
+ //console.log('[vtecxnext storageusage] start.')
3975
+ // vte.cxへリクエスト
3976
+ const method = 'GET';
3977
+ const url = `${SERVLETPATH_DATA}/?_storageusage`;
3978
+ let response;
3979
+ try {
3980
+ response = await this.requestVtecx(method, url);
3981
+ }
3982
+ catch (e) {
3983
+ throw newFetchError(e, true);
3984
+ }
3985
+ //console.log(`[vtecxnext storageusage] response=${response}`)
3986
+ // vte.cxからのset-cookieを転記
3987
+ this.setCookie(response);
3988
+ // レスポンスのエラーチェック
3989
+ await checkVtecxResponse(response);
3990
+ // 戻り値
3991
+ const data = await getJson(response);
3992
+ if (isIntegerString(data.feed.title)) {
3993
+ return Number(data.feed.title);
3994
+ }
3995
+ return 0;
3996
+ };
3997
+ /**
3998
+ * convert index informations to argument entry
3999
+ * @param indexInfos index informations
4000
+ * @returns feed
4001
+ */
4002
+ convertIndexInfoToEntries = (indexInfos) => {
4003
+ const retFeed = [];
4004
+ for (const indexInfo of indexInfos) {
4005
+ const title = this.convertIndexFields(indexInfo.fields);
4006
+ const retEntry = {
4007
+ link: [
4008
+ {
4009
+ ___rel: 'self',
4010
+ ___href: indexInfo.uri
4011
+ }
4012
+ ],
4013
+ title: title
4014
+ };
4015
+ retFeed.push(retEntry);
4016
+ }
4017
+ return retFeed;
4018
+ };
4019
+ /**
4020
+ * convert index fields to comma-separated string
4021
+ * @param fields index fields
4022
+ * @returns comma-separated string
4023
+ */
4024
+ convertIndexFields = (fields) => {
4025
+ if (fields && fields.length) {
4026
+ let title = '';
4027
+ for (const field of fields) {
4028
+ if (title) {
4029
+ title += ',';
4030
+ }
4031
+ title += fields;
4032
+ }
4033
+ return title;
4034
+ }
4035
+ return undefined;
4036
+ };
3889
4037
  //----------------------
3890
4038
  /**
3891
4039
  * vte.cxへリクエスト
@@ -4504,6 +4652,12 @@ const isBlank = (val) => {
4504
4652
  }
4505
4653
  return false;
4506
4654
  };
4655
+ /**
4656
+ * 文字列の数字判定
4657
+ * @param s 文字列
4658
+ * @returns 文字列が数字であればtrue
4659
+ */
4660
+ const isIntegerString = (s) => /^[0-9]+$/.test(s);
4507
4661
  /**
4508
4662
  * vte.cxからのレスポンスが正常かエラーかをチェックする。
4509
4663
  * エラーの場合 VtecxNextError をスローする。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vtecx/vtecxnext",
3
- "version": "3.0.3",
3
+ "version": "3.0.5",
4
4
  "description": "vte.cx Next.js api",
5
5
  "main": "dist/index.js",
6
6
  "files": [