@equinor/fusion-framework-module-services 2.0.7 → 2.1.0

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.
Files changed (59) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/esm/bookmarks/client.js +10 -0
  3. package/dist/esm/bookmarks/client.js.map +1 -1
  4. package/dist/esm/bookmarks/delete/client.js +1 -1
  5. package/dist/esm/bookmarks/delete/client.js.map +1 -1
  6. package/dist/esm/bookmarks/getAll/client.js +4 -0
  7. package/dist/esm/bookmarks/getAll/client.js.map +1 -0
  8. package/dist/esm/bookmarks/getAll/generate-endpoint.js +11 -0
  9. package/dist/esm/bookmarks/getAll/generate-endpoint.js.map +1 -0
  10. package/dist/esm/bookmarks/getAll/generate-parameters.js +6 -0
  11. package/dist/esm/bookmarks/getAll/generate-parameters.js.map +1 -0
  12. package/dist/esm/bookmarks/getAll/index.js +5 -0
  13. package/dist/esm/bookmarks/getAll/index.js.map +1 -0
  14. package/dist/esm/bookmarks/getAll/types.js +2 -0
  15. package/dist/esm/bookmarks/getAll/types.js.map +1 -0
  16. package/dist/esm/bookmarks/patch/client.js +4 -0
  17. package/dist/esm/bookmarks/patch/client.js.map +1 -0
  18. package/dist/esm/bookmarks/patch/generate-endpoint.js +11 -0
  19. package/dist/esm/bookmarks/patch/generate-endpoint.js.map +1 -0
  20. package/dist/esm/bookmarks/patch/generate-parameters.js +9 -0
  21. package/dist/esm/bookmarks/patch/generate-parameters.js.map +1 -0
  22. package/dist/esm/bookmarks/patch/index.js +5 -0
  23. package/dist/esm/bookmarks/patch/index.js.map +1 -0
  24. package/dist/esm/bookmarks/patch/types.js +2 -0
  25. package/dist/esm/bookmarks/patch/types.js.map +1 -0
  26. package/dist/esm/bookmarks/post/generate-endpoint.js +1 -5
  27. package/dist/esm/bookmarks/post/generate-endpoint.js.map +1 -1
  28. package/dist/esm/bookmarks/post/generate-parameters.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/dist/types/bookmarks/api-models.d.ts +2 -2
  31. package/dist/types/bookmarks/client.d.ts +4 -0
  32. package/dist/types/bookmarks/getAll/client.d.ts +5 -0
  33. package/dist/types/bookmarks/getAll/generate-endpoint.d.ts +1 -0
  34. package/dist/types/bookmarks/getAll/generate-parameters.d.ts +3 -0
  35. package/dist/types/bookmarks/getAll/index.d.ts +4 -0
  36. package/dist/types/bookmarks/getAll/types.d.ts +10 -0
  37. package/dist/types/bookmarks/patch/client.d.ts +5 -0
  38. package/dist/types/bookmarks/patch/generate-endpoint.d.ts +2 -0
  39. package/dist/types/bookmarks/patch/generate-parameters.d.ts +4 -0
  40. package/dist/types/bookmarks/patch/index.d.ts +4 -0
  41. package/dist/types/bookmarks/patch/types.d.ts +19 -0
  42. package/dist/types/bookmarks/post/types.d.ts +2 -3
  43. package/package.json +8 -4
  44. package/src/bookmarks/api-models.ts +2 -2
  45. package/src/bookmarks/client.ts +30 -2
  46. package/src/bookmarks/delete/client.ts +1 -1
  47. package/src/bookmarks/getAll/client.ts +30 -0
  48. package/src/bookmarks/getAll/generate-endpoint.ts +15 -0
  49. package/src/bookmarks/getAll/generate-parameters.ts +18 -0
  50. package/src/bookmarks/getAll/index.ts +6 -0
  51. package/src/bookmarks/getAll/types.ts +21 -0
  52. package/src/bookmarks/patch/client.ts +30 -0
  53. package/src/bookmarks/patch/generate-endpoint.ts +18 -0
  54. package/src/bookmarks/patch/generate-parameters.ts +28 -0
  55. package/src/bookmarks/patch/index.ts +6 -0
  56. package/src/bookmarks/patch/types.ts +45 -0
  57. package/src/bookmarks/post/generate-endpoint.ts +1 -5
  58. package/src/bookmarks/post/generate-parameters.ts +0 -2
  59. package/src/bookmarks/post/types.ts +2 -2
@@ -8,8 +8,8 @@ export interface ApiBookmarkEntityV1<TPayload> {
8
8
  context: Context;
9
9
  createdBy: CreatedBy;
10
10
  updatedBy: UpdatedBy;
11
- created: Date;
12
- updated: Date;
11
+ created: string;
12
+ updated: string;
13
13
  sourceSystem: SourceSystem;
14
14
  }
15
15
  export interface Context {
@@ -3,12 +3,16 @@ import { ClientMethod } from '@equinor/fusion-framework-module-services/context'
3
3
  import { DeleteBookmarkResult, DeleteBookmarksFn, DeleteBookmarksResult } from './delete/types';
4
4
  import { ApiVersions, GetBookmarkResult, GetBookmarksFn, GetBookmarksResult } from './get/types';
5
5
  import { PostBookmarkResult, PostBookmarkFn, PostBookmarksResult } from './post/types';
6
+ import { PutBookmarkFn as PatchBookmarkFn, PutBookmarkResult as PatchBookmarkResult, PutBookmarksResult as PatchBookmarksResult } from './patch';
7
+ import { GetAllBookmarkResult, GetAllBookmarksResult } from './getAll';
6
8
  export declare class BookmarksApiClient<TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>, TClient extends IHttpClient = IHttpClient, TPayload = unknown> {
7
9
  protected _client: TClient;
8
10
  protected _method: TMethod;
9
11
  constructor(_client: TClient, _method: TMethod);
10
12
  get<TVersion extends ApiVersions, TResult = GetBookmarkResult<TVersion, TPayload>>(version: TVersion, ...args: Parameters<GetBookmarksFn<TVersion, TMethod, TClient, TPayload, TResult>>): GetBookmarksResult<TVersion, TMethod, TPayload, TResult>;
13
+ getAll<TVersion extends ApiVersions, TResult = GetAllBookmarkResult<TVersion, TPayload>>(version: TVersion): GetAllBookmarksResult<TVersion, TMethod, TPayload, TResult>;
11
14
  post<TVersion extends ApiVersions, TResult = PostBookmarkResult<TVersion, TPayload>>(version: TVersion, ...args: Parameters<PostBookmarkFn<TVersion, TMethod, TClient, TPayload, TResult>>): PostBookmarksResult<TVersion, TMethod, TPayload, TResult>;
15
+ patch<TVersion extends ApiVersions, TResult = PatchBookmarkResult<TVersion, TPayload>>(version: TVersion, ...args: Parameters<PatchBookmarkFn<TVersion, TMethod, TClient, TPayload, TResult>>): PatchBookmarksResult<TVersion, TMethod, TPayload, TResult>;
12
16
  delete<TVersion extends ApiVersions, TResult = DeleteBookmarkResult<TVersion>>(version: TVersion, ...args: Parameters<DeleteBookmarksFn<TVersion, TMethod, TClient, TResult>>): DeleteBookmarksResult<TVersion, TMethod, TResult>;
13
17
  }
14
18
  export default BookmarksApiClient;
@@ -0,0 +1,5 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ClientMethod } from '../..';
3
+ import { GetAllBookmarkResult, GetAllBookmarksResult } from './types';
4
+ export declare const getAllBookmarks: <TVersion extends "v1" = "v1", TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>, TClient extends IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response> = IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response>>(client: TClient, version: TVersion, method?: TMethod) => <TResult = GetAllBookmarkResult<TVersion, unknown>>(init?: ClientRequestInit<TClient, TResult> | undefined) => GetAllBookmarksResult<TVersion, TMethod, unknown, TResult>;
5
+ export default getAllBookmarks;
@@ -0,0 +1 @@
1
+ export declare const generateEndpoint: <TVersion extends "v1">(version: TVersion) => string;
@@ -0,0 +1,3 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ApiClientArguments } from '../types';
3
+ export declare const generateParameters: <TResult, TVersion extends "v1", TClient extends IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response> = IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response>>(version: TVersion, init?: ClientRequestInit<TClient, TResult> | undefined) => ApiClientArguments<TClient, TResult>;
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export { getAllBookmarks, default } from './client';
3
+ export { generateEndpoint } from './generate-endpoint';
4
+ export { generateParameters } from './generate-parameters';
@@ -0,0 +1,10 @@
1
+ import { ApiBookmarkEntityV1 } from '../api-models';
2
+ import { ClientMethod } from '../types';
3
+ export type GetAllBookmarksResult<TVersion extends ApiVersions, TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>, TPayload = unknown, TResult = GetAllBookmarkResult<TVersion, TPayload>> = ClientMethod<TResult>[TMethod];
4
+ export type GetAllBookmarkResult<TVersion extends ApiVersions, TPayload> = GetAllBookmarksVersions<TPayload>[TVersion]['result'];
5
+ export type GetAllBookmarksVersions<TPayload = unknown> = {
6
+ ['v1']: {
7
+ result: Array<ApiBookmarkEntityV1<TPayload>>;
8
+ };
9
+ };
10
+ export type ApiVersions = keyof GetAllBookmarksVersions<unknown>;
@@ -0,0 +1,5 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ClientMethod } from '../..';
3
+ import { PutBookmarkArgs, PutBookmarkResult, PutBookmarksResult } from './types';
4
+ export declare const putBookmark: <TClient extends IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response> = IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response>, TVersion extends "v1" = "v1", TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>>(client: TClient, version: TVersion, method?: TMethod) => <TResult = PutBookmarkResult<TVersion, unknown>>(args: PutBookmarkArgs<TVersion, unknown>, init?: ClientRequestInit<TClient, TResult> | undefined) => PutBookmarksResult<TVersion, TMethod, unknown, TResult>;
5
+ export default putBookmark;
@@ -0,0 +1,2 @@
1
+ import { PutBookmarkArgs } from './types';
2
+ export declare const generateEndpoint: <TVersion extends "v1">(version: TVersion, _args: PutBookmarkArgs<TVersion, unknown>) => string;
@@ -0,0 +1,4 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ApiClientArguments } from '../..';
3
+ import { PutBookmarkArgs } from './types';
4
+ export declare const generateParameters: <TResult, TVersion extends "v1", TClient extends IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response> = IHttpClient<import("@equinor/fusion-framework-module-http/client").FetchRequest, Response>>(version: TVersion, args: PutBookmarkArgs<TVersion, unknown>, init?: ClientRequestInit<TClient, TResult> | undefined) => ApiClientArguments<TClient, TResult>;
@@ -0,0 +1,4 @@
1
+ export * from './types';
2
+ export { putBookmark, default } from './client';
3
+ export { generateEndpoint as generatePutEndpoint } from './generate-endpoint';
4
+ export { generateParameters as generatePutParameters } from './generate-parameters';
@@ -0,0 +1,19 @@
1
+ import { IHttpClient } from '@equinor/fusion-framework-module-http';
2
+ import { ClientRequestInit } from '@equinor/fusion-framework-module-http/client';
3
+ import { ClientMethod } from '../..';
4
+ import { ApiBookmarkEntityV1 } from '../api-models';
5
+ import { PostBookmarksArgsV1 } from '../post';
6
+ export type PutBookmarkResult<TVersion extends ApiVersions, TPayload> = PutBookmarksVersions<TPayload>[TVersion]['result'];
7
+ export type PutBookmarkArgs<TVersion extends ApiVersions, TPayload = unknown> = PutBookmarksVersions<TPayload>[TVersion]['args'];
8
+ export type PutBookmarksResult<TVersion extends ApiVersions, TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>, TPayload = unknown, TResult = PutBookmarkResult<TVersion, TPayload>> = ClientMethod<TResult>[TMethod];
9
+ export type PutBookmarkFn<TVersion extends ApiVersions, TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>, TClient extends IHttpClient = IHttpClient, TPayload = unknown, TResult = PutBookmarkResult<TVersion, TPayload>> = (args: PutBookmarkArgs<TVersion>, init?: ClientRequestInit<TClient, TResult>) => PutBookmarksResult<TVersion, TMethod, TPayload, TResult>;
10
+ export interface PutBookmarksArgsV1<T = unknown> extends PostBookmarksArgsV1<T> {
11
+ id: string;
12
+ }
13
+ export type PutBookmarksVersions<TPayload = unknown> = {
14
+ ['v1']: {
15
+ args: PutBookmarksArgsV1<TPayload>;
16
+ result: ApiBookmarkEntityV1<TPayload>;
17
+ };
18
+ };
19
+ export type ApiVersions = keyof PutBookmarksVersions<unknown>;
@@ -6,7 +6,7 @@ export type PostBookmarkResult<TVersion extends ApiVersions, TPayload> = PostBoo
6
6
  export type PostBookmarkArgs<TVersion extends ApiVersions, TPayload = unknown> = PostBookmarksVersions<TPayload>[TVersion]['args'];
7
7
  export type PostBookmarksResult<TVersion extends ApiVersions, TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>, TPayload = unknown, TResult = PostBookmarkResult<TVersion, TPayload>> = ClientMethod<TResult>[TMethod];
8
8
  export type PostBookmarkFn<TVersion extends ApiVersions, TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>, TClient extends IHttpClient = IHttpClient, TPayload = unknown, TResult = PostBookmarkResult<TVersion, TPayload>> = (args: PostBookmarkArgs<TVersion>, init?: ClientRequestInit<TClient, TResult>) => PostBookmarksResult<TVersion, TMethod, TPayload, TResult>;
9
- type PostBookmarksArgsV1<T = unknown> = {
9
+ export interface PostBookmarksArgsV1<T = unknown> {
10
10
  name: string;
11
11
  description?: string;
12
12
  isShared: boolean;
@@ -18,7 +18,7 @@ type PostBookmarksArgsV1<T = unknown> = {
18
18
  name?: string;
19
19
  subSystem?: string;
20
20
  };
21
- };
21
+ }
22
22
  export type PostBookmarksVersions<TPayload = unknown> = {
23
23
  ['v1']: {
24
24
  args: PostBookmarksArgsV1<TPayload>;
@@ -26,4 +26,3 @@ export type PostBookmarksVersions<TPayload = unknown> = {
26
26
  };
27
27
  };
28
28
  export type ApiVersions = keyof PostBookmarksVersions<unknown>;
29
- export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@equinor/fusion-framework-module-services",
3
- "version": "2.0.7",
3
+ "version": "2.1.0",
4
4
  "description": "",
5
5
  "sideEffects": false,
6
6
  "main": "dist/esm/index.js",
@@ -18,12 +18,16 @@
18
18
  ],
19
19
  "context/query": [
20
20
  "dist/types/context/query/index"
21
+ ],
22
+ "bookmarks": [
23
+ "dist/types/bookmarks/index"
21
24
  ]
22
25
  }
23
26
  },
24
27
  "exports": {
25
28
  ".": "./dist/esm/index.js",
26
29
  "./context": "./dist/esm/context/index.js",
30
+ "./bookmark": "./dist/esm/bookmarks/index.js",
27
31
  "./context/get": "./dist/esm/context/get-context/index.js",
28
32
  "./errors": "./dist/esm/errors.js",
29
33
  "./package.json": "./package.json"
@@ -48,12 +52,12 @@
48
52
  },
49
53
  "devDependencies": {
50
54
  "@equinor/fusion-framework-module": "^2.0.1",
51
- "@equinor/fusion-framework-module-http": "^4.0.1",
52
- "@equinor/fusion-framework-module-service-discovery": "^6.0.7"
55
+ "@equinor/fusion-framework-module-http": "^4.0.2",
56
+ "@equinor/fusion-framework-module-service-discovery": "^6.0.8"
53
57
  },
54
58
  "peerDependencies": {
55
59
  "@equinor/fusion-framework-module": ">=1.2.2",
56
60
  "odata-query": "^7.0.3"
57
61
  },
58
- "gitHead": "a59959b7f25df08c9f93b05f1ea46980ff9e1303"
62
+ "gitHead": "d177e1925ca7b8692435b1fdefbcc0c8418d7625"
59
63
  }
@@ -8,8 +8,8 @@ export interface ApiBookmarkEntityV1<TPayload> {
8
8
  context: Context;
9
9
  createdBy: CreatedBy;
10
10
  updatedBy: UpdatedBy;
11
- created: Date;
12
- updated: Date;
11
+ created: string;
12
+ updated: string;
13
13
  sourceSystem: SourceSystem;
14
14
  }
15
15
 
@@ -7,6 +7,12 @@ import getBookmark from './get/client';
7
7
  import { ApiVersions, GetBookmarkResult, GetBookmarksFn, GetBookmarksResult } from './get/types';
8
8
  import { PostBookmarkResult, PostBookmarkFn, PostBookmarksResult } from './post/types';
9
9
  import postBookmark from './post/client';
10
+ import patchBookmark, {
11
+ PutBookmarkFn as PatchBookmarkFn,
12
+ PutBookmarkResult as PatchBookmarkResult,
13
+ PutBookmarksResult as PatchBookmarksResult,
14
+ } from './patch';
15
+ import getAllBookmarks, { GetAllBookmarkResult, GetAllBookmarksResult } from './getAll';
10
16
 
11
17
  export class BookmarksApiClient<
12
18
  TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>,
@@ -23,9 +29,19 @@ export class BookmarksApiClient<
23
29
  version: TVersion,
24
30
  ...args: Parameters<GetBookmarksFn<TVersion, TMethod, TClient, TPayload, TResult>>
25
31
  ): GetBookmarksResult<TVersion, TMethod, TPayload, TResult> {
26
- const fn = getBookmark<TVersion, TMethod, TClient>(this._client, version, this._method);
32
+ const fn = getBookmark(this._client, version, this._method);
27
33
  return fn<TResult>(...args);
28
34
  }
35
+ /**
36
+ * Fetch all bookmarks
37
+ * @see {@link get/client}
38
+ */
39
+ public getAll<TVersion extends ApiVersions, TResult = GetAllBookmarkResult<TVersion, TPayload>>(
40
+ version: TVersion
41
+ ): GetAllBookmarksResult<TVersion, TMethod, TPayload, TResult> {
42
+ const fn = getAllBookmarks(this._client, version, this._method);
43
+ return fn<TResult>();
44
+ }
29
45
 
30
46
  /**
31
47
  * Create a new bookmark
@@ -35,7 +51,19 @@ export class BookmarksApiClient<
35
51
  version: TVersion,
36
52
  ...args: Parameters<PostBookmarkFn<TVersion, TMethod, TClient, TPayload, TResult>>
37
53
  ): PostBookmarksResult<TVersion, TMethod, TPayload, TResult> {
38
- const fn = postBookmark<TVersion, TMethod, TClient>(this._client, version, this._method);
54
+ const fn = postBookmark(this._client, version, this._method);
55
+ return fn<TResult>(...args);
56
+ }
57
+
58
+ /**
59
+ * Update a bookmark
60
+ * @see {@link get/client}
61
+ */
62
+ public patch<TVersion extends ApiVersions, TResult = PatchBookmarkResult<TVersion, TPayload>>(
63
+ version: TVersion,
64
+ ...args: Parameters<PatchBookmarkFn<TVersion, TMethod, TClient, TPayload, TResult>>
65
+ ): PatchBookmarksResult<TVersion, TMethod, TPayload, TResult> {
66
+ const fn = patchBookmark(this._client, version, this._method);
39
67
  return fn<TResult>(...args);
40
68
  }
41
69
 
@@ -22,7 +22,7 @@ export const deleteBookmark =
22
22
  >(
23
23
  client: TClient,
24
24
  version: TVersion,
25
- method: TMethod = 'json' as TMethod
25
+ method: TMethod = 'fetch' as TMethod
26
26
  ) =>
27
27
  <TResult = DeleteBookmarkResult<TVersion>>(
28
28
  args: DeleteBookmarkArgs<TVersion>,
@@ -0,0 +1,30 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ClientMethod } from '../..';
3
+
4
+ import { generateParameters } from './generate-parameters';
5
+ import { ApiVersions, GetAllBookmarkResult, GetAllBookmarksResult } from './types';
6
+
7
+ /**
8
+ * Method for fetching all bookmarks for the current user from bookmark service
9
+ * @param client - client for execution of request
10
+ * @param version - version of API to call
11
+ * @param method - client method to call
12
+ */
13
+ export const getAllBookmarks =
14
+ <
15
+ TVersion extends ApiVersions = ApiVersions,
16
+ TMethod extends keyof ClientMethod = keyof ClientMethod,
17
+ TClient extends IHttpClient = IHttpClient
18
+ >(
19
+ client: TClient,
20
+ version: TVersion,
21
+ method: TMethod = 'json' as TMethod
22
+ ) =>
23
+ <TResult = GetAllBookmarkResult<TVersion, unknown>>(
24
+ init?: ClientRequestInit<TClient, TResult>
25
+ ): GetAllBookmarksResult<TVersion, TMethod, unknown, TResult> =>
26
+ client[method](
27
+ ...generateParameters<TResult, TVersion, TClient>(version, init)
28
+ ) as GetAllBookmarksResult<TVersion, TMethod, unknown, TResult>;
29
+
30
+ export default getAllBookmarks;
@@ -0,0 +1,15 @@
1
+ import { ApiVersions } from './types';
2
+
3
+ /**
4
+ * Method for generating endpoint for getting all bookmarks
5
+ */
6
+ export const generateEndpoint = <TVersion extends ApiVersions>(version: TVersion) => {
7
+ switch (version) {
8
+ case 'v1':
9
+ default: {
10
+ const params = new URLSearchParams();
11
+ params.append('api-version', version);
12
+ return `persons/me/bookmarks/?${String(params)}`;
13
+ }
14
+ }
15
+ };
@@ -0,0 +1,18 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ApiClientArguments } from '../types';
3
+
4
+ import { generateEndpoint } from './generate-endpoint';
5
+ import { ApiVersions } from './types';
6
+
7
+ /** function for creating http client arguments */
8
+ export const generateParameters = <
9
+ TResult,
10
+ TVersion extends ApiVersions,
11
+ TClient extends IHttpClient = IHttpClient
12
+ >(
13
+ version: TVersion,
14
+ init?: ClientRequestInit<TClient, TResult>
15
+ ): ApiClientArguments<TClient, TResult> => {
16
+ const path = generateEndpoint(version);
17
+ return [path, init];
18
+ };
@@ -0,0 +1,6 @@
1
+ export * from './types';
2
+
3
+ export { getAllBookmarks, default } from './client';
4
+
5
+ export { generateEndpoint } from './generate-endpoint';
6
+ export { generateParameters } from './generate-parameters';
@@ -0,0 +1,21 @@
1
+ import { ApiBookmarkEntityV1 } from '../api-models';
2
+ import { ClientMethod } from '../types';
3
+
4
+ /**Gets result type for GetAllBookmark call based on version and method */
5
+ export type GetAllBookmarksResult<
6
+ TVersion extends ApiVersions,
7
+ TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>,
8
+ TPayload = unknown,
9
+ TResult = GetAllBookmarkResult<TVersion, TPayload>
10
+ > = ClientMethod<TResult>[TMethod];
11
+
12
+ export type GetAllBookmarkResult<
13
+ TVersion extends ApiVersions,
14
+ TPayload
15
+ > = GetAllBookmarksVersions<TPayload>[TVersion]['result'];
16
+
17
+ export type GetAllBookmarksVersions<TPayload = unknown> = {
18
+ ['v1']: { result: Array<ApiBookmarkEntityV1<TPayload>> };
19
+ };
20
+
21
+ export type ApiVersions = keyof GetAllBookmarksVersions<unknown>;
@@ -0,0 +1,30 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ClientMethod } from '../..';
3
+ import { generateParameters } from './generate-parameters';
4
+ import { ApiVersions, PutBookmarkArgs, PutBookmarkResult, PutBookmarksResult } from './types';
5
+
6
+ /**
7
+ * Method for updating bookmark
8
+ * @param client - client for execution of request
9
+ * @param version - version of API to call
10
+ * @param method - client method to call
11
+ */
12
+ export const putBookmark =
13
+ <
14
+ TClient extends IHttpClient = IHttpClient,
15
+ TVersion extends ApiVersions = ApiVersions,
16
+ TMethod extends keyof ClientMethod = keyof ClientMethod
17
+ >(
18
+ client: TClient,
19
+ version: TVersion,
20
+ method: TMethod = 'json' as TMethod
21
+ ) =>
22
+ <TResult = PutBookmarkResult<TVersion, unknown>>(
23
+ args: PutBookmarkArgs<TVersion>,
24
+ init?: ClientRequestInit<TClient, TResult>
25
+ ): PutBookmarksResult<TVersion, TMethod, unknown, TResult> =>
26
+ client[method](
27
+ ...generateParameters<TResult, TVersion, TClient>(version, args, init)
28
+ ) as PutBookmarksResult<TVersion, TMethod, unknown, TResult>;
29
+
30
+ export default putBookmark;
@@ -0,0 +1,18 @@
1
+ import { ApiVersions, PutBookmarkArgs } from './types';
2
+
3
+ /**
4
+ * Method for generating endpoint for getting bookmark by id
5
+ */
6
+ export const generateEndpoint = <TVersion extends ApiVersions>(
7
+ version: TVersion,
8
+ _args: PutBookmarkArgs<TVersion>
9
+ ) => {
10
+ switch (version) {
11
+ case 'v1':
12
+ default: {
13
+ const params = new URLSearchParams();
14
+ params.append('api-version', version);
15
+ return `/bookmarks/${_args.id}?${String(params)}`;
16
+ }
17
+ }
18
+ };
@@ -0,0 +1,28 @@
1
+ import { ClientRequestInit, IHttpClient } from '@equinor/fusion-framework-module-http/client';
2
+ import { ApiClientArguments } from '../..';
3
+ import { generateEndpoint } from './generate-endpoint';
4
+ import { ApiVersions, PutBookmarkArgs } from './types';
5
+
6
+ /** function for creating http client arguments */
7
+ export const generateParameters = <
8
+ TResult,
9
+ TVersion extends ApiVersions,
10
+ TClient extends IHttpClient = IHttpClient
11
+ >(
12
+ version: TVersion,
13
+ args: PutBookmarkArgs<TVersion>,
14
+ init?: ClientRequestInit<TClient, TResult>
15
+ ): ApiClientArguments<TClient, TResult> => {
16
+ const path = generateEndpoint(version, args);
17
+
18
+ const headers = new Headers();
19
+ headers.append('content-type', 'application/json');
20
+
21
+ const requestParams: ClientRequestInit<TClient, TResult> = Object.assign(
22
+ {},
23
+ { method: 'patch', body: JSON.stringify(args), headers: headers },
24
+ init
25
+ );
26
+
27
+ return [path, requestParams];
28
+ };
@@ -0,0 +1,6 @@
1
+ export * from './types';
2
+
3
+ export { putBookmark, default } from './client';
4
+
5
+ export { generateEndpoint as generatePutEndpoint } from './generate-endpoint';
6
+ export { generateParameters as generatePutParameters } from './generate-parameters';
@@ -0,0 +1,45 @@
1
+ import { IHttpClient } from '@equinor/fusion-framework-module-http';
2
+ import { ClientRequestInit } from '@equinor/fusion-framework-module-http/client';
3
+ import { ClientMethod } from '../..';
4
+ import { ApiBookmarkEntityV1 } from '../api-models';
5
+ import { PostBookmarksArgsV1 } from '../post';
6
+
7
+ export type PutBookmarkResult<
8
+ TVersion extends ApiVersions,
9
+ TPayload
10
+ > = PutBookmarksVersions<TPayload>[TVersion]['result'];
11
+
12
+ /** Returns args for PutBookmark based on version*/
13
+ export type PutBookmarkArgs<
14
+ TVersion extends ApiVersions,
15
+ TPayload = unknown
16
+ > = PutBookmarksVersions<TPayload>[TVersion]['args'];
17
+
18
+ /**Gets result type for PutBookmark call based on version and method */
19
+ export type PutBookmarksResult<
20
+ TVersion extends ApiVersions,
21
+ TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>,
22
+ TPayload = unknown,
23
+ TResult = PutBookmarkResult<TVersion, TPayload>
24
+ > = ClientMethod<TResult>[TMethod];
25
+
26
+ export type PutBookmarkFn<
27
+ TVersion extends ApiVersions,
28
+ TMethod extends keyof ClientMethod<unknown> = keyof ClientMethod<unknown>,
29
+ TClient extends IHttpClient = IHttpClient,
30
+ TPayload = unknown,
31
+ TResult = PutBookmarkResult<TVersion, TPayload>
32
+ > = (
33
+ args: PutBookmarkArgs<TVersion>,
34
+ init?: ClientRequestInit<TClient, TResult>
35
+ ) => PutBookmarksResult<TVersion, TMethod, TPayload, TResult>;
36
+
37
+ export interface PutBookmarksArgsV1<T = unknown> extends PostBookmarksArgsV1<T> {
38
+ id: string;
39
+ }
40
+
41
+ export type PutBookmarksVersions<TPayload = unknown> = {
42
+ ['v1']: { args: PutBookmarksArgsV1<TPayload>; result: ApiBookmarkEntityV1<TPayload> };
43
+ };
44
+
45
+ export type ApiVersions = keyof PutBookmarksVersions<unknown>;
@@ -8,11 +8,7 @@ export const generateEndpoint = <TVersion extends ApiVersions>(
8
8
  _args: PostBookmarkArgs<TVersion>
9
9
  ) => {
10
10
  switch (version) {
11
- case 'v1': {
12
- const params = new URLSearchParams();
13
- params.append('api-version', '1.0');
14
- return `/bookmarks?${String(params)}`;
15
- }
11
+ case 'v1':
16
12
  default: {
17
13
  const params = new URLSearchParams();
18
14
  params.append('api-version', version);
@@ -14,9 +14,7 @@ export const generateParameters = <
14
14
  init?: ClientRequestInit<TClient, TResult>
15
15
  ): ApiClientArguments<TClient, TResult> => {
16
16
  const path = generateEndpoint(version, args);
17
- //add versions switch case later
18
17
 
19
- //Not sure why this is needed, defaults to application/problem+json failing the request
20
18
  const headers = new Headers();
21
19
  headers.append('content-type', 'application/json');
22
20
 
@@ -33,7 +33,7 @@ export type PostBookmarkFn<
33
33
  init?: ClientRequestInit<TClient, TResult>
34
34
  ) => PostBookmarksResult<TVersion, TMethod, TPayload, TResult>;
35
35
 
36
- type PostBookmarksArgsV1<T = unknown> = {
36
+ export interface PostBookmarksArgsV1<T = unknown> {
37
37
  /** Display name of the bookmark */
38
38
  name: string;
39
39
  description?: string;
@@ -49,7 +49,7 @@ type PostBookmarksArgsV1<T = unknown> = {
49
49
  name?: string;
50
50
  subSystem?: string;
51
51
  };
52
- };
52
+ }
53
53
 
54
54
  export type PostBookmarksVersions<TPayload = unknown> = {
55
55
  ['v1']: { args: PostBookmarksArgsV1<TPayload>; result: ApiBookmarkEntityV1<TPayload> };