@tanglemedia/svelte-starter-directus-api 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { type DirectusClient, type RestClient } from '@directus/sdk';
2
- import { ApiAdapterAbstract, type AnyObject, type ApiAdapterRequestConfig, type ApiId, type ApiResponse, type BaseApiMethods } from '@tanglemedia/svelte-starter-core';
2
+ import { ApiAdapterAbstract, type AnyObject, type ApiAdapterRequestConfig, type ApiCreateManyQuery, type ApiDeleteManyQuery, type ApiId, type ApiResponse, type ApiUpdateManyQuery, type BaseApiMethods } from '@tanglemedia/svelte-starter-core';
3
3
  import type { DirectusConfig, SchemaShape } from '../types/adapter.types';
4
4
  export type AdapterClient<Schema extends SchemaShape = SchemaShape> = DirectusClient<Schema> & RestClient<Schema>;
5
5
  export declare class DirectusApiAdapter<Schema extends SchemaShape = SchemaShape, Path extends string = keyof SchemaShape> extends ApiAdapterAbstract<DirectusConfig, ApiAdapterRequestConfig, Path, AdapterClient> {
@@ -19,4 +19,7 @@ export declare class DirectusApiAdapter<Schema extends SchemaShape = SchemaShape
19
19
  delete<T>(collection: Path, key?: ApiId): Promise<ApiResponse<T>>;
20
20
  put<T>(collection: Path, key?: ApiId, payload?: AnyObject): Promise<ApiResponse<T>>;
21
21
  upload<T>(path: string | undefined, data: FormData): Promise<ApiResponse<T>>;
22
+ createMany<T, R = T>(path: Path, body: ApiCreateManyQuery<T>): Promise<ApiResponse<R[], Response, AnyObject>>;
23
+ updateMany<T, R = T>(path: Path, body: ApiUpdateManyQuery<T>): Promise<ApiResponse<R[], Response, AnyObject>>;
24
+ deleteMany<R = null>(path: Path, body: ApiDeleteManyQuery<ApiId>): Promise<ApiResponse<R, Response, AnyObject>>;
22
25
  }
@@ -1,4 +1,4 @@
1
- import { aggregate, createItem, deleteItem, readFiles, readItem, readItems, updateItem, uploadFiles } from '@directus/sdk';
1
+ import { aggregate, createItem, createItems, deleteItem, deleteItems, readItem, readItems, updateItem, updateItems, uploadFiles } from '@directus/sdk';
2
2
  import { ApiAdapterAbstract } from '@tanglemedia/svelte-starter-core';
3
3
  export class DirectusApiAdapter extends ApiAdapterAbstract {
4
4
  config;
@@ -97,4 +97,19 @@ export class DirectusApiAdapter extends ApiAdapterAbstract {
97
97
  const response = await this.directus.request(uploadFiles(data));
98
98
  return this.transformResponse(response, 201);
99
99
  }
100
+ async createMany(path, body) {
101
+ const response = await this.directus.request(createItems(path, body.data));
102
+ return this.transformResponse(response, 200);
103
+ }
104
+ async updateMany(path, body) {
105
+ if (!body.ids) {
106
+ throw Error('You must provide an array of keys to update');
107
+ }
108
+ const response = await this.directus.request(updateItems(path, body.ids || [], body.data));
109
+ return this.transformResponse(response, 200);
110
+ }
111
+ async deleteMany(path, body) {
112
+ const response = await this.directus.request(deleteItems(path, body.ids));
113
+ return this.transformResponse(response, 201);
114
+ }
100
115
  }
@@ -1,5 +1,5 @@
1
- import { readFiles, readMe, refresh, updateMe } from '@directus/sdk';
2
- import { ApiResponse, ServiceAdapterAbstract } from '@tanglemedia/svelte-starter-core';
1
+ import { readFiles, readMe, updateMe } from '@directus/sdk';
2
+ import { ServiceAdapterAbstract } from '@tanglemedia/svelte-starter-core';
3
3
  class DirectusAuthServices extends ServiceAdapterAbstract {
4
4
  getDirectus() {
5
5
  return this.getAdapterClient();
@@ -49,7 +49,7 @@ class DirectusAuthServices extends ServiceAdapterAbstract {
49
49
  }
50
50
  async getCurrentUser(fields = null) {
51
51
  try {
52
- if (!await this.getToken())
52
+ if (!(await this.getToken()))
53
53
  await this.refresh();
54
54
  const response = await (await this.getDirectus()).request(readMe({ fields: fields ? fields : ['*', 'roles.*'] }));
55
55
  return response;
@@ -61,7 +61,7 @@ class DirectusAuthServices extends ServiceAdapterAbstract {
61
61
  }
62
62
  async updateCurrentUser(data) {
63
63
  try {
64
- if (!await this.getToken())
64
+ if (!(await this.getToken()))
65
65
  await this.refresh();
66
66
  const response = await (await this.getDirectus()).request(updateMe(data));
67
67
  return response;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanglemedia/svelte-starter-directus-api",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "main": "src/index.ts",
5
5
  "types": "src/index.ts",
6
6
  "description": "directus API wrapper for all the directus sdk functionality",
@@ -41,7 +41,7 @@
41
41
  "@types/js-cookie": "^3.0.6",
42
42
  "esm-env": "^1.0.0",
43
43
  "js-cookie": "^3.0.5",
44
- "@tanglemedia/svelte-starter-core": "0.0.18"
44
+ "@tanglemedia/svelte-starter-core": "0.0.19"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@sveltejs/kit": ">=2 <3",
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  aggregate,
3
3
  createItem,
4
+ createItems,
4
5
  deleteItem,
5
- readFiles,
6
+ deleteItems,
6
7
  readItem,
7
8
  readItems,
8
9
  updateItem,
10
+ updateItems,
9
11
  uploadFiles,
10
12
  type DirectusClient,
11
13
  type RestClient
@@ -14,8 +16,11 @@ import {
14
16
  ApiAdapterAbstract,
15
17
  type AnyObject,
16
18
  type ApiAdapterRequestConfig,
19
+ type ApiCreateManyQuery,
20
+ type ApiDeleteManyQuery,
17
21
  type ApiId,
18
22
  type ApiResponse,
23
+ type ApiUpdateManyQuery,
19
24
  type BaseApiMethods
20
25
  } from '@tanglemedia/svelte-starter-core';
21
26
  import type { DirectusConfig, SchemaShape } from '../types/adapter.types';
@@ -161,4 +166,22 @@ export class DirectusApiAdapter<
161
166
  const response = await this.directus.request<T>(uploadFiles(data));
162
167
  return this.transformResponse(response, 201);
163
168
  }
169
+
170
+ async createMany<T, R = T>(path: Path, body: ApiCreateManyQuery<T>) {
171
+ const response = await this.directus.request<T>(createItems(path, body.data));
172
+ return this.transformResponse<R[]>(response, 200);
173
+ }
174
+
175
+ async updateMany<T, R = T>(path: Path, body: ApiUpdateManyQuery<T>) {
176
+ if (!body.ids) {
177
+ throw Error('You must provide an array of keys to update');
178
+ }
179
+ const response = await this.directus.request<T>(updateItems(path, body.ids || [], body.data));
180
+ return this.transformResponse<R[]>(response, 200);
181
+ }
182
+
183
+ async deleteMany<R = null>(path: Path, body: ApiDeleteManyQuery<ApiId>) {
184
+ const response = await this.directus.request(deleteItems(path, body.ids));
185
+ return this.transformResponse<R>(response as R, 201);
186
+ }
164
187
  }
@@ -1,7 +1,7 @@
1
1
  import type { AuthenticationClient } from '@directus/sdk';
2
- import { readFiles, readMe, refresh, updateMe } from '@directus/sdk';
2
+ import { readFiles, readMe, updateMe } from '@directus/sdk';
3
3
  import type { DirectusClient, RestClient } from '@directus/sdk';
4
- import { ApiResponse, ServiceAdapterAbstract } from '@tanglemedia/svelte-starter-core';
4
+ import { ServiceAdapterAbstract } from '@tanglemedia/svelte-starter-core';
5
5
 
6
6
  class DirectusAuthServices extends ServiceAdapterAbstract {
7
7
  public getDirectus() {
@@ -56,7 +56,7 @@ class DirectusAuthServices extends ServiceAdapterAbstract {
56
56
 
57
57
  public async getCurrentUser<T>(fields: string[] | null = null): Promise<T> {
58
58
  try {
59
- if (!await this.getToken()) await this.refresh();
59
+ if (!(await this.getToken())) await this.refresh();
60
60
  const response = await (
61
61
  await this.getDirectus()
62
62
  ).request<T>(readMe({ fields: fields ? fields : ['*', 'roles.*'] }));
@@ -69,7 +69,7 @@ class DirectusAuthServices extends ServiceAdapterAbstract {
69
69
 
70
70
  public async updateCurrentUser<T>(data: object): Promise<T> {
71
71
  try {
72
- if (!await this.getToken()) await this.refresh();
72
+ if (!(await this.getToken())) await this.refresh();
73
73
  const response = await (await this.getDirectus()).request<T>(updateMe(data));
74
74
  return response;
75
75
  } catch (error) {