@vitalfit/sdk 0.0.31 → 0.0.33
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/LICENSE +21 -21
- package/README.md +25 -25
- package/dist/index.cjs +69 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +62 -3
- package/dist/index.d.ts +62 -3
- package/dist/index.js +69 -1
- package/dist/index.js.map +1 -1
- package/package.json +53 -53
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 VitalFit
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 VitalFit
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
# VitalFit API's SDK
|
|
2
|
-
|
|
3
|
-
## The VitalFit SDK provides a set of services to interact with the VitalFit API. It includes support for authentication, managing entities like branches, services, equipments, etc. . .
|
|
4
|
-
|
|
5
|
-
## Using the SDK
|
|
6
|
-
|
|
7
|
-
### Installation
|
|
8
|
-
|
|
9
|
-
```sh
|
|
10
|
-
npm install @vitalFit/sdk@latest
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### `VitalFit` Class
|
|
14
|
-
|
|
15
|
-
The `VitalFit` class is the main entry point for interacting with the SDK. It provides access to various services for managing entities.
|
|
16
|
-
|
|
17
|
-
#### Singleton Pattern
|
|
18
|
-
|
|
19
|
-
The `VitalFit` class uses the Singleton pattern. Use the `getInstance` method to get the single instance of the class.
|
|
20
|
-
|
|
21
|
-
```typescript
|
|
22
|
-
import { VitalFit } from '@vitalFit/sdk';
|
|
23
|
-
|
|
24
|
-
const VitalFit = VitalFit.getInstance(true); // Pass `true` for development mode
|
|
25
|
-
```
|
|
1
|
+
# VitalFit API's SDK
|
|
2
|
+
|
|
3
|
+
## The VitalFit SDK provides a set of services to interact with the VitalFit API. It includes support for authentication, managing entities like branches, services, equipments, etc. . .
|
|
4
|
+
|
|
5
|
+
## Using the SDK
|
|
6
|
+
|
|
7
|
+
### Installation
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
npm install @vitalFit/sdk@latest
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### `VitalFit` Class
|
|
14
|
+
|
|
15
|
+
The `VitalFit` class is the main entry point for interacting with the SDK. It provides access to various services for managing entities.
|
|
16
|
+
|
|
17
|
+
#### Singleton Pattern
|
|
18
|
+
|
|
19
|
+
The `VitalFit` class uses the Singleton pattern. Use the `getInstance` method to get the single instance of the class.
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { VitalFit } from '@vitalFit/sdk';
|
|
23
|
+
|
|
24
|
+
const VitalFit = VitalFit.getInstance(true); // Pass `true` for development mode
|
|
25
|
+
```
|
package/dist/index.cjs
CHANGED
|
@@ -359,10 +359,76 @@ var PaymentMethodService = class {
|
|
|
359
359
|
}
|
|
360
360
|
};
|
|
361
361
|
|
|
362
|
+
// src/services/instructor.ts
|
|
363
|
+
var InstructorService = class {
|
|
364
|
+
client;
|
|
365
|
+
constructor(client) {
|
|
366
|
+
this.client = client;
|
|
367
|
+
this.getInstructors = this.getInstructors.bind(this);
|
|
368
|
+
this.createInstructor = this.createInstructor.bind(this);
|
|
369
|
+
this.getInstructorById = this.getInstructorById.bind(this);
|
|
370
|
+
this.updateInstructor = this.updateInstructor.bind(this);
|
|
371
|
+
this.deleteInstructor = this.deleteInstructor.bind(this);
|
|
372
|
+
this.addSpecialty = this.addSpecialty.bind(this);
|
|
373
|
+
this.removeSpecialty = this.removeSpecialty.bind(this);
|
|
374
|
+
}
|
|
375
|
+
async getInstructors({ search, identity_doc }, jwt) {
|
|
376
|
+
const response = await this.client.get({
|
|
377
|
+
url: "/instructor",
|
|
378
|
+
jwt,
|
|
379
|
+
params: {
|
|
380
|
+
search,
|
|
381
|
+
identity_doc
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
return response;
|
|
385
|
+
}
|
|
386
|
+
async createInstructor(instructorData, jwt) {
|
|
387
|
+
await this.client.post({
|
|
388
|
+
url: "/instructor",
|
|
389
|
+
jwt,
|
|
390
|
+
data: instructorData
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
async getInstructorById(instructorId, jwt) {
|
|
394
|
+
const response = await this.client.get({
|
|
395
|
+
url: `/instructor/${instructorId}`,
|
|
396
|
+
jwt
|
|
397
|
+
});
|
|
398
|
+
return response;
|
|
399
|
+
}
|
|
400
|
+
async updateInstructor(instructorId, instructorData, jwt) {
|
|
401
|
+
await this.client.put({
|
|
402
|
+
url: `/instructor/${instructorId}`,
|
|
403
|
+
jwt,
|
|
404
|
+
data: instructorData
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
async deleteInstructor(instructorId, jwt) {
|
|
408
|
+
await this.client.delete({
|
|
409
|
+
url: `/instructor/${instructorId}`,
|
|
410
|
+
jwt
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
async addSpecialty(instructorId, specialty, jwt) {
|
|
414
|
+
await this.client.post({
|
|
415
|
+
url: `/instructor/${instructorId}/specialty`,
|
|
416
|
+
jwt
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
async removeSpecialty(instructorId, specialtyId, jwt) {
|
|
420
|
+
await this.client.delete({
|
|
421
|
+
url: `/instructor/${instructorId}/specialty/${specialtyId}`,
|
|
422
|
+
jwt
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
};
|
|
426
|
+
|
|
362
427
|
// src/types/auth.ts
|
|
363
428
|
var UserGender = /* @__PURE__ */ ((UserGender2) => {
|
|
364
429
|
UserGender2["male"] = "male";
|
|
365
430
|
UserGender2["female"] = "female";
|
|
431
|
+
UserGender2["preferNotToSay"] = "prefer-not-to-say";
|
|
366
432
|
return UserGender2;
|
|
367
433
|
})(UserGender || {});
|
|
368
434
|
|
|
@@ -374,12 +440,14 @@ var VitalFit = class _VitalFit {
|
|
|
374
440
|
user;
|
|
375
441
|
branch;
|
|
376
442
|
paymentMethod;
|
|
443
|
+
instructor;
|
|
377
444
|
constructor(isDevMode, origin) {
|
|
378
445
|
this.client = new Client(isDevMode, origin);
|
|
379
446
|
this.auth = new AuthService(this.client);
|
|
380
447
|
this.user = new UserService(this.client);
|
|
381
448
|
this.branch = new BranchService(this.client);
|
|
382
449
|
this.paymentMethod = new PaymentMethodService(this.client);
|
|
450
|
+
this.instructor = new InstructorService(this.client);
|
|
383
451
|
}
|
|
384
452
|
static getInstance(isDevMode = false) {
|
|
385
453
|
if (!_VitalFit.instance) {
|
|
@@ -388,7 +456,7 @@ var VitalFit = class _VitalFit {
|
|
|
388
456
|
return _VitalFit.instance;
|
|
389
457
|
}
|
|
390
458
|
version() {
|
|
391
|
-
return "0.0.
|
|
459
|
+
return "0.0.33";
|
|
392
460
|
}
|
|
393
461
|
};
|
|
394
462
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/types/auth.ts"],"sourcesContent":["import { Client } from './client';\nimport {\n AuthService,\n UserService,\n BranchService,\n PaymentMethodService,\n} from './services';\n\nexport class VitalFit {\n private static instance: VitalFit;\n client: Client;\n auth: AuthService;\n user: UserService;\n branch: BranchService;\n paymentMethod: PaymentMethodService;\n\n constructor(isDevMode: boolean, origin?: string) {\n this.client = new Client(isDevMode, origin);\n this.auth = new AuthService(this.client);\n this.user = new UserService(this.client);\n this.branch = new BranchService(this.client);\n this.paymentMethod = new PaymentMethodService(this.client);\n }\n\n static getInstance(isDevMode = false): VitalFit {\n if (!VitalFit.instance) {\n VitalFit.instance = new VitalFit(isDevMode);\n }\n return VitalFit.instance;\n }\n\n version(): string {\n return '0.0.31';\n }\n}\n\nexport * from './types';\nexport * from './errors';\n","import axios, { type AxiosInstance } from 'axios';\nimport { BASE_URL, DEV_URL } from './settings';\nimport { APIError } from './errors';\nimport type { Pagination } from './types';\n\nexport type ClientConfig = {\n url: string;\n jwt?: string;\n data?: object;\n params?: object;\n};\n\nexport class Client {\n private client: AxiosInstance;\n jwt?: string;\n\n constructor(isDevMode: boolean, origin?: string) {\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n if (origin) {\n headers['Origin'] = origin;\n }\n this.client = axios.create({\n baseURL: isDevMode ? DEV_URL : BASE_URL,\n headers,\n });\n }\n\n async call(method: string, config: ClientConfig): Promise<Response> {\n if (config.jwt) {\n this.client.interceptors.request.use((axiosConfig) => {\n if (axiosConfig.headers) {\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`;\n }\n return axiosConfig;\n });\n }\n try {\n const response = await this.client.request({\n method: method,\n url: config.url,\n data: config.data,\n params: config.params,\n });\n this.client.interceptors.request.clear();\n return response.data;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n const errorMessage = error.response?.data?.error;\n if (typeof errorMessage === 'string') {\n throw new APIError([errorMessage], error.response?.status ?? 500);\n }\n throw new APIError(\n ['Ocurrió un error inesperado'],\n error.response?.status ?? 500,\n );\n }\n throw new Error(error as string);\n }\n }\n\n async get(config: ClientConfig): Promise<any> {\n const isPaginated = config.params && 'page' in config.params;\n\n if (isPaginated) {\n const response = (await this.call(\n 'get',\n config,\n )) as unknown as Pagination<any>;\n\n const baseURL = this.client.defaults.baseURL || '';\n\n if (response.next) {\n response.next = `${baseURL}${response.next}`;\n }\n if (response.previous) {\n response.previous = `${baseURL}${response.previous}`;\n }\n\n return response;\n } else {\n const data = await this.call('get', config);\n return data;\n }\n }\n\n async post(config: ClientConfig) {\n const data = await this.call('post', config);\n return data;\n }\n\n async put(config: ClientConfig) {\n const data = await this.call('put', config);\n return data;\n }\n\n async patch(config: ClientConfig) {\n const data = await this.call('patch', config);\n return data;\n }\n\n async delete(config: ClientConfig) {\n const data = await this.call('delete', config);\n return data;\n }\n\n setJWT(jwt: string) {\n this.jwt = jwt;\n }\n\n removeJWT() {\n this.jwt = undefined;\n }\n}\n","export const BASE_URL = 'https://api-rm8x.onrender.com/v1';\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1';\n","export class APIError extends Error {\n status: number;\n messages: string[];\n constructor(messages: string[], status: number) {\n super(messages.join(', '));\n this.status = status;\n this.messages = messages;\n }\n}\n\nexport const isAPIError = (error: unknown): error is APIError => {\n return error instanceof APIError;\n};\n","import { Client } from '../client';\nimport type { LoginRequest, LoginResponse, SignUpRequest } from '../types';\n\nexport class AuthService {\n private client: Client;\n constructor(client: Client) {\n this.client = client;\n this.login = this.login.bind(this);\n this.signUp = this.signUp.bind(this);\n this.signUpStaff = this.signUpStaff.bind(this);\n this.forgotPassword = this.forgotPassword.bind(this);\n this.resetPassword = this.resetPassword.bind(this);\n this.verifyEmail = this.verifyEmail.bind(this);\n\n this.logout = this.logout.bind(this);\n this.saveJWT = this.saveJWT.bind(this);\n }\n\n async login({\n email,\n password,\n context,\n }: LoginRequest): Promise<LoginResponse> {\n const response = await this.client.post({\n url: '/auth/login',\n data: {\n email,\n password,\n context,\n },\n });\n return response as unknown as LoginResponse;\n }\n\n logout(): void {\n this.client.removeJWT();\n }\n\n saveJWT(jwt: string): void {\n this.client.setJWT(jwt);\n }\n\n async signUp(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\n if (signUpData.role_name != 'client') {\n throw new Error('Only clients can sign up using this method');\n }\n if (!birthDateRegex.test(signUpData.birth_date)) {\n throw new Error('Birth date must be in the format YYYY-MM-DD');\n }\n await this.client.post({\n url: '/auth/register',\n data: signUpData,\n });\n }\n\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\n if (!birthDateRegex.test(signUpData.birth_date)) {\n throw new Error('Birth date must be in the format YYYY-MM-DD');\n }\n await this.client.post({\n url: '/auth/register-staff',\n data: signUpData,\n });\n }\n async forgotPassword(email: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/forgot',\n data: {\n email,\n },\n });\n }\n\n async resetPassword(\n otp: string,\n password: string,\n repeatPassword: string,\n ): Promise<void> {\n await this.client.post({\n url: '/auth/password/reset',\n data: {\n otp,\n password,\n repeatPassword,\n },\n });\n }\n\n async verifyEmail(otp: string): Promise<void> {\n await this.client.post({\n url: '/auth/activate',\n data: {\n otp,\n },\n });\n }\n}\n","import { Client } from '@/client';\nimport type {\n UserApiResponse,\n DataResponse,\n User,\n UserPaginationOptions,\n} from '@/types';\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\n this.getClientUsers = this.getClientUsers.bind(this);\n this.getStaffUsers = this.getStaffUsers.bind(this);\n }\n\n async getStaffUsers(\n { search, role }: UserPaginationOptions,\n jwt: string,\n ): Promise<DataResponse<User[]>> {\n const response = await this.client.get({\n url: '/user/users',\n jwt,\n params: {\n search,\n role,\n },\n });\n\n return response as unknown as DataResponse<User[]>;\n }\n\n async WhoAmI(jwt: string): Promise<UserApiResponse> {\n const response = await this.client.get({\n url: '/user/whoami',\n jwt,\n });\n return response as unknown as UserApiResponse;\n }\n async getBranchAdmins(jwt: string): Promise<DataResponse<User[]>> {\n const response = await this.client.get({\n url: '/user/branch-admins',\n jwt,\n });\n return response as unknown as DataResponse<User[]>;\n }\n\n async getClientUsers(\n jwt: string,\n options: UserPaginationOptions = {},\n ): Promise<DataResponse<User[]>> {\n const response = await this.client.get({\n url: '/user/clients',\n jwt,\n params: options,\n });\n return response as unknown as DataResponse<User[]>;\n }\n}\n","import type { Pagination, CreateBranchRequest, DataResponse } from '@/types';\nimport type {\n PaginatedBranch,\n PaginationBranchRequest,\n BranchStatusCount,\n BranchDetails,\n UpdateBranchRequest,\n} from '../types/branch';\n\nexport class BranchService {\n private client: any;\n\n constructor(client: any) {\n this.client = client;\n this.getBranches = this.getBranches.bind(this);\n this.delete = this.delete.bind(this);\n this.getBranchStatusCount = this.getBranchStatusCount.bind(this);\n this.createBranch = this.createBranch.bind(this);\n this.getBranchById = this.getBranchById.bind(this);\n this.updateBranch = this.updateBranch.bind(this);\n }\n\n async updateBranch(\n branchId: string,\n branchData: UpdateBranchRequest,\n jwt: string,\n ): Promise<void> {\n await this.client.put({\n url: `/branches/${branchId}`,\n jwt,\n data: branchData,\n });\n }\n\n async getBranchById(branchId: string, jwt: string): Promise<BranchDetails> {\n const response = await this.client.get({\n url: `/branches/${branchId}`,\n jwt,\n });\n return response as unknown as BranchDetails;\n }\n\n async getBranches(\n { page = 1, limit = 10, search, status, location }: PaginationBranchRequest,\n jwt: string,\n ): Promise<Pagination<PaginatedBranch[]>> {\n const response = await this.client.get({\n url: '/branches',\n jwt,\n params: {\n page,\n limit,\n search,\n status,\n location,\n },\n });\n return response as unknown as Pagination<PaginatedBranch[]>;\n }\n\n async delete(branchId: string, jwt: string): Promise<void> {\n await this.client.delete({\n url: `/branches/${branchId}`,\n jwt,\n });\n }\n\n async getBranchStatusCount(\n jwt: string,\n ): Promise<DataResponse<BranchStatusCount>> {\n const response = await this.client.get({\n url: '/branches/status',\n jwt,\n });\n return response as unknown as DataResponse<BranchStatusCount>;\n }\n\n async createBranch(\n branchData: CreateBranchRequest,\n jwt: string,\n ): Promise<void> {\n await this.client.post({\n url: '/branches',\n jwt,\n data: branchData,\n });\n }\n}\n","import { Client } from '../client';\nimport type { DataResponse, PaymentMethod } from '../types';\n\nexport class PaymentMethodService {\n private client: Client;\n\n constructor(client: Client) {\n this.client = client;\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\n }\n\n async getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>> {\n const response = await this.client.get({\n url: '/billing/payment-methods',\n jwt,\n });\n return response as unknown as DataResponse<PaymentMethod[]>;\n }\n}\n","export enum UserGender {\n male = 'male',\n female = 'female',\n}\n\nexport type LoginRequest = {\n email: string;\n password: string;\n context?: string;\n};\n\nexport type LoginResponse = {\n token: string;\n};\n\nexport type SignUpRequest = {\n first_name: string;\n last_name: string;\n email: string;\n password: string;\n identity_document: string;\n phone?: string | null;\n birth_date: string;\n gender?: UserGender | null;\n profile_picture_url?: string | null;\n role_name?: string | null;\n};\n"],"mappings":"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","names":["axios","UserGender"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/services/instructor.ts","../src/types/auth.ts"],"sourcesContent":["import { Client } from './client';\r\nimport {\r\n AuthService,\r\n UserService,\r\n BranchService,\r\n PaymentMethodService,\r\n InstructorService,\r\n} from './services';\r\n\r\nexport class VitalFit {\r\n private static instance: VitalFit;\r\n client: Client;\r\n auth: AuthService;\r\n user: UserService;\r\n branch: BranchService;\r\n paymentMethod: PaymentMethodService;\r\n instructor: InstructorService;\r\n\r\n constructor(isDevMode: boolean, origin?: string) {\r\n this.client = new Client(isDevMode, origin);\r\n this.auth = new AuthService(this.client);\r\n this.user = new UserService(this.client);\r\n this.branch = new BranchService(this.client);\r\n this.paymentMethod = new PaymentMethodService(this.client);\r\n this.instructor = new InstructorService(this.client);\r\n }\r\n\r\n static getInstance(isDevMode = false): VitalFit {\r\n if (!VitalFit.instance) {\r\n VitalFit.instance = new VitalFit(isDevMode);\r\n }\r\n return VitalFit.instance;\r\n }\r\n\r\n version(): string {\r\n return '0.0.33';\r\n }\r\n}\r\n\r\nexport * from './types';\r\nexport * from './errors';\r\n","import axios, { type AxiosInstance } from 'axios';\r\nimport { BASE_URL, DEV_URL } from './settings';\r\nimport { APIError } from './errors';\r\nimport type { Pagination } from './types';\r\n\r\nexport type ClientConfig = {\r\n url: string;\r\n jwt?: string;\r\n data?: object;\r\n params?: object;\r\n};\r\n\r\nexport class Client {\r\n private client: AxiosInstance;\r\n jwt?: string;\r\n\r\n constructor(isDevMode: boolean, origin?: string) {\r\n let headers: Record<string, string> = {\r\n 'Content-Type': 'application/json',\r\n };\r\n if (origin) {\r\n headers['Origin'] = origin;\r\n }\r\n this.client = axios.create({\r\n baseURL: isDevMode ? DEV_URL : BASE_URL,\r\n headers,\r\n });\r\n }\r\n\r\n async call(method: string, config: ClientConfig): Promise<Response> {\r\n if (config.jwt) {\r\n this.client.interceptors.request.use((axiosConfig) => {\r\n if (axiosConfig.headers) {\r\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`;\r\n }\r\n return axiosConfig;\r\n });\r\n }\r\n try {\r\n const response = await this.client.request({\r\n method: method,\r\n url: config.url,\r\n data: config.data,\r\n params: config.params,\r\n });\r\n this.client.interceptors.request.clear();\r\n return response.data;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n } catch (error: unknown) {\r\n if (axios.isAxiosError(error)) {\r\n const errorMessage = error.response?.data?.error;\r\n if (typeof errorMessage === 'string') {\r\n throw new APIError([errorMessage], error.response?.status ?? 500);\r\n }\r\n throw new APIError(\r\n ['Ocurrió un error inesperado'],\r\n error.response?.status ?? 500,\r\n );\r\n }\r\n throw new Error(error as string);\r\n }\r\n }\r\n\r\n async get(config: ClientConfig): Promise<any> {\r\n const isPaginated = config.params && 'page' in config.params;\r\n\r\n if (isPaginated) {\r\n const response = (await this.call(\r\n 'get',\r\n config,\r\n )) as unknown as Pagination<any>;\r\n\r\n const baseURL = this.client.defaults.baseURL || '';\r\n\r\n if (response.next) {\r\n response.next = `${baseURL}${response.next}`;\r\n }\r\n if (response.previous) {\r\n response.previous = `${baseURL}${response.previous}`;\r\n }\r\n\r\n return response;\r\n } else {\r\n const data = await this.call('get', config);\r\n return data;\r\n }\r\n }\r\n\r\n async post(config: ClientConfig) {\r\n const data = await this.call('post', config);\r\n return data;\r\n }\r\n\r\n async put(config: ClientConfig) {\r\n const data = await this.call('put', config);\r\n return data;\r\n }\r\n\r\n async patch(config: ClientConfig) {\r\n const data = await this.call('patch', config);\r\n return data;\r\n }\r\n\r\n async delete(config: ClientConfig) {\r\n const data = await this.call('delete', config);\r\n return data;\r\n }\r\n\r\n setJWT(jwt: string) {\r\n this.jwt = jwt;\r\n }\r\n\r\n removeJWT() {\r\n this.jwt = undefined;\r\n }\r\n}\r\n","export const BASE_URL = 'https://api-rm8x.onrender.com/v1';\r\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1';\r\n","export class APIError extends Error {\r\n status: number;\r\n messages: string[];\r\n constructor(messages: string[], status: number) {\r\n super(messages.join(', '));\r\n this.status = status;\r\n this.messages = messages;\r\n }\r\n}\r\n\r\nexport const isAPIError = (error: unknown): error is APIError => {\r\n return error instanceof APIError;\r\n};\r\n","import { Client } from '../client';\r\nimport type { LoginRequest, LoginResponse, SignUpRequest } from '../types';\r\n\r\nexport class AuthService {\r\n private client: Client;\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.login = this.login.bind(this);\r\n this.signUp = this.signUp.bind(this);\r\n this.signUpStaff = this.signUpStaff.bind(this);\r\n this.forgotPassword = this.forgotPassword.bind(this);\r\n this.resetPassword = this.resetPassword.bind(this);\r\n this.verifyEmail = this.verifyEmail.bind(this);\r\n\r\n this.logout = this.logout.bind(this);\r\n this.saveJWT = this.saveJWT.bind(this);\r\n }\r\n\r\n async login({\r\n email,\r\n password,\r\n context,\r\n }: LoginRequest): Promise<LoginResponse> {\r\n const response = await this.client.post({\r\n url: '/auth/login',\r\n data: {\r\n email,\r\n password,\r\n context,\r\n },\r\n });\r\n return response as unknown as LoginResponse;\r\n }\r\n\r\n logout(): void {\r\n this.client.removeJWT();\r\n }\r\n\r\n saveJWT(jwt: string): void {\r\n this.client.setJWT(jwt);\r\n }\r\n\r\n async signUp(signUpData: SignUpRequest): Promise<void> {\r\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n if (signUpData.role_name != 'client') {\r\n throw new Error('Only clients can sign up using this method');\r\n }\r\n if (!birthDateRegex.test(signUpData.birth_date)) {\r\n throw new Error('Birth date must be in the format YYYY-MM-DD');\r\n }\r\n await this.client.post({\r\n url: '/auth/register',\r\n data: signUpData,\r\n });\r\n }\r\n\r\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\r\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n if (!birthDateRegex.test(signUpData.birth_date)) {\r\n throw new Error('Birth date must be in the format YYYY-MM-DD');\r\n }\r\n await this.client.post({\r\n url: '/auth/register-staff',\r\n data: signUpData,\r\n });\r\n }\r\n async forgotPassword(email: string): Promise<void> {\r\n await this.client.post({\r\n url: '/auth/password/forgot',\r\n data: {\r\n email,\r\n },\r\n });\r\n }\r\n\r\n async resetPassword(\r\n otp: string,\r\n password: string,\r\n repeatPassword: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: '/auth/password/reset',\r\n data: {\r\n otp,\r\n password,\r\n repeatPassword,\r\n },\r\n });\r\n }\r\n\r\n async verifyEmail(otp: string): Promise<void> {\r\n await this.client.post({\r\n url: '/auth/activate',\r\n data: {\r\n otp,\r\n },\r\n });\r\n }\r\n}\r\n","import { Client } from '@/client';\r\nimport type {\r\n UserApiResponse,\r\n DataResponse,\r\n User,\r\n UserPaginationOptions,\r\n} from '@/types';\r\n\r\nexport class UserService {\r\n client: Client;\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.WhoAmI = this.WhoAmI.bind(this);\r\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\r\n this.getClientUsers = this.getClientUsers.bind(this);\r\n this.getStaffUsers = this.getStaffUsers.bind(this);\r\n }\r\n\r\n async getStaffUsers(\r\n { search, role }: UserPaginationOptions,\r\n jwt: string,\r\n ): Promise<DataResponse<User[]>> {\r\n const response = await this.client.get({\r\n url: '/user/users',\r\n jwt,\r\n params: {\r\n search,\r\n role,\r\n },\r\n });\r\n\r\n return response as unknown as DataResponse<User[]>;\r\n }\r\n\r\n async WhoAmI(jwt: string): Promise<UserApiResponse> {\r\n const response = await this.client.get({\r\n url: '/user/whoami',\r\n jwt,\r\n });\r\n return response as unknown as UserApiResponse;\r\n }\r\n async getBranchAdmins(jwt: string): Promise<DataResponse<User[]>> {\r\n const response = await this.client.get({\r\n url: '/user/branch-admins',\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<User[]>;\r\n }\r\n\r\n async getClientUsers(\r\n jwt: string,\r\n options: UserPaginationOptions = {},\r\n ): Promise<DataResponse<User[]>> {\r\n const response = await this.client.get({\r\n url: '/user/clients',\r\n jwt,\r\n params: options,\r\n });\r\n return response as unknown as DataResponse<User[]>;\r\n }\r\n}\r\n","import type { Pagination, CreateBranchRequest, DataResponse } from '@/types';\r\nimport type {\r\n PaginatedBranch,\r\n PaginationBranchRequest,\r\n BranchStatusCount,\r\n BranchDetails,\r\n UpdateBranchRequest,\r\n} from '../types/branch';\r\n\r\nexport class BranchService {\r\n private client: any;\r\n\r\n constructor(client: any) {\r\n this.client = client;\r\n this.getBranches = this.getBranches.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.getBranchStatusCount = this.getBranchStatusCount.bind(this);\r\n this.createBranch = this.createBranch.bind(this);\r\n this.getBranchById = this.getBranchById.bind(this);\r\n this.updateBranch = this.updateBranch.bind(this);\r\n }\r\n\r\n async updateBranch(\r\n branchId: string,\r\n branchData: UpdateBranchRequest,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.put({\r\n url: `/branches/${branchId}`,\r\n jwt,\r\n data: branchData,\r\n });\r\n }\r\n\r\n async getBranchById(branchId: string, jwt: string): Promise<BranchDetails> {\r\n const response = await this.client.get({\r\n url: `/branches/${branchId}`,\r\n jwt,\r\n });\r\n return response as unknown as BranchDetails;\r\n }\r\n\r\n async getBranches(\r\n { page = 1, limit = 10, search, status, location }: PaginationBranchRequest,\r\n jwt: string,\r\n ): Promise<Pagination<PaginatedBranch[]>> {\r\n const response = await this.client.get({\r\n url: '/branches',\r\n jwt,\r\n params: {\r\n page,\r\n limit,\r\n search,\r\n status,\r\n location,\r\n },\r\n });\r\n return response as unknown as Pagination<PaginatedBranch[]>;\r\n }\r\n\r\n async delete(branchId: string, jwt: string): Promise<void> {\r\n await this.client.delete({\r\n url: `/branches/${branchId}`,\r\n jwt,\r\n });\r\n }\r\n\r\n async getBranchStatusCount(\r\n jwt: string,\r\n ): Promise<DataResponse<BranchStatusCount>> {\r\n const response = await this.client.get({\r\n url: '/branches/status',\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<BranchStatusCount>;\r\n }\r\n\r\n async createBranch(\r\n branchData: CreateBranchRequest,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: '/branches',\r\n jwt,\r\n data: branchData,\r\n });\r\n }\r\n}\r\n","import { Client } from '../client';\r\nimport type { DataResponse, PaymentMethod } from '../types';\r\n\r\nexport class PaymentMethodService {\r\n private client: Client;\r\n\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\r\n }\r\n\r\n async getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>> {\r\n const response = await this.client.get({\r\n url: '/billing/payment-methods',\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<PaymentMethod[]>;\r\n }\r\n}\r\n","import type {\r\n Instructor,\r\n DataResponse,\r\n InstructorDataList,\r\n PaginatedInstructor,\r\n InstructorData,\r\n Specialty,\r\n} from '@/types';\r\nimport { Client } from '../client';\r\n\r\nexport class InstructorService {\r\n private client: Client;\r\n\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.getInstructors = this.getInstructors.bind(this);\r\n this.createInstructor = this.createInstructor.bind(this);\r\n this.getInstructorById = this.getInstructorById.bind(this);\r\n this.updateInstructor = this.updateInstructor.bind(this);\r\n this.deleteInstructor = this.deleteInstructor.bind(this);\r\n this.addSpecialty = this.addSpecialty.bind(this);\r\n this.removeSpecialty = this.removeSpecialty.bind(this);\r\n }\r\n\r\n async getInstructors(\r\n { search, identity_doc }: PaginatedInstructor,\r\n jwt: string,\r\n ): Promise<DataResponse<InstructorDataList[]>> {\r\n const response = await this.client.get({\r\n url: '/instructor',\r\n jwt,\r\n params: {\r\n search,\r\n identity_doc,\r\n },\r\n });\r\n return response as unknown as DataResponse<InstructorDataList[]>;\r\n }\r\n\r\n async createInstructor(\r\n instructorData: Instructor,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: '/instructor',\r\n jwt,\r\n data: instructorData,\r\n });\r\n }\r\n\r\n async getInstructorById(\r\n instructorId: string,\r\n jwt: string,\r\n ): Promise<DataResponse<InstructorData>> {\r\n const response = await this.client.get({\r\n url: `/instructor/${instructorId}`,\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<InstructorData>;\r\n }\r\n\r\n async updateInstructor(\r\n instructorId: string,\r\n instructorData: Instructor,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.put({\r\n url: `/instructor/${instructorId}`,\r\n jwt,\r\n data: instructorData,\r\n });\r\n }\r\n\r\n async deleteInstructor(instructorId: string, jwt: string): Promise<void> {\r\n await this.client.delete({\r\n url: `/instructor/${instructorId}`,\r\n jwt,\r\n });\r\n }\r\n\r\n async addSpecialty(\r\n instructorId: string,\r\n specialty: Specialty,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: `/instructor/${instructorId}/specialty`,\r\n jwt,\r\n });\r\n }\r\n\r\n async removeSpecialty(\r\n instructorId: string,\r\n specialtyId: string,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.delete({\r\n url: `/instructor/${instructorId}/specialty/${specialtyId}`,\r\n jwt,\r\n });\r\n }\r\n}\r\n","export enum UserGender {\r\n male = 'male',\r\n female = 'female',\r\n preferNotToSay = 'prefer-not-to-say',\r\n}\r\n\r\nexport type LoginRequest = {\r\n email: string;\r\n password: string;\r\n context?: string;\r\n};\r\n\r\nexport type LoginResponse = {\r\n token: string;\r\n};\r\n\r\nexport type SignUpRequest = {\r\n first_name: string;\r\n last_name: string;\r\n email: string;\r\n password: string;\r\n identity_document: string;\r\n phone?: string | null;\r\n birth_date: string;\r\n gender?: UserGender | null;\r\n profile_picture_url?: string | null;\r\n role_name?: string | null;\r\n};\r\n"],"mappings":"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","names":["axios","UserGender"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -44,7 +44,8 @@ type DataResponse<T> = {
|
|
|
44
44
|
|
|
45
45
|
declare enum UserGender {
|
|
46
46
|
male = "male",
|
|
47
|
-
female = "female"
|
|
47
|
+
female = "female",
|
|
48
|
+
preferNotToSay = "prefer-not-to-say"
|
|
48
49
|
}
|
|
49
50
|
type LoginRequest = {
|
|
50
51
|
email: string;
|
|
@@ -188,7 +189,6 @@ type CreateBranchRequest = {
|
|
|
188
189
|
max_capacity: number;
|
|
189
190
|
name: string;
|
|
190
191
|
operating_hours: OperatingHour[];
|
|
191
|
-
payment_methods: string[];
|
|
192
192
|
phone: string;
|
|
193
193
|
state: string;
|
|
194
194
|
status: string;
|
|
@@ -216,6 +216,52 @@ type UpdateBranchRequest = {
|
|
|
216
216
|
tax_id: string;
|
|
217
217
|
};
|
|
218
218
|
|
|
219
|
+
type Specialty = {
|
|
220
|
+
specialty_id: string;
|
|
221
|
+
specialty_name?: string;
|
|
222
|
+
};
|
|
223
|
+
type InstructorData = {
|
|
224
|
+
biography: string;
|
|
225
|
+
birth_date: string;
|
|
226
|
+
email: string;
|
|
227
|
+
first_name: string;
|
|
228
|
+
gender: string;
|
|
229
|
+
identity_document: string;
|
|
230
|
+
instructor_id: string;
|
|
231
|
+
last_name: string;
|
|
232
|
+
phone: string;
|
|
233
|
+
profile_picture_url: string;
|
|
234
|
+
specialties: Specialty[];
|
|
235
|
+
user_id: string;
|
|
236
|
+
};
|
|
237
|
+
type InstructorDataList = {
|
|
238
|
+
biography: string;
|
|
239
|
+
birth_date: string;
|
|
240
|
+
email: string;
|
|
241
|
+
first_name: string;
|
|
242
|
+
gender: string;
|
|
243
|
+
identity_document: string;
|
|
244
|
+
instructor_id: string;
|
|
245
|
+
last_name: string;
|
|
246
|
+
phone: string;
|
|
247
|
+
profile_picture_url: string;
|
|
248
|
+
user_id: string;
|
|
249
|
+
};
|
|
250
|
+
type Instructor = {
|
|
251
|
+
biography?: string;
|
|
252
|
+
birth_date?: string;
|
|
253
|
+
email?: string;
|
|
254
|
+
first_name?: string;
|
|
255
|
+
gender?: UserGender | null;
|
|
256
|
+
identity_document?: string;
|
|
257
|
+
last_name?: string;
|
|
258
|
+
phone?: string;
|
|
259
|
+
profile_picture_url?: string;
|
|
260
|
+
};
|
|
261
|
+
type PaginatedInstructor = PaginationRequest & {
|
|
262
|
+
identity_doc?: string;
|
|
263
|
+
};
|
|
264
|
+
|
|
219
265
|
declare class AuthService {
|
|
220
266
|
private client;
|
|
221
267
|
constructor(client: Client);
|
|
@@ -255,6 +301,18 @@ declare class PaymentMethodService {
|
|
|
255
301
|
getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>>;
|
|
256
302
|
}
|
|
257
303
|
|
|
304
|
+
declare class InstructorService {
|
|
305
|
+
private client;
|
|
306
|
+
constructor(client: Client);
|
|
307
|
+
getInstructors({ search, identity_doc }: PaginatedInstructor, jwt: string): Promise<DataResponse<InstructorDataList[]>>;
|
|
308
|
+
createInstructor(instructorData: Instructor, jwt: string): Promise<void>;
|
|
309
|
+
getInstructorById(instructorId: string, jwt: string): Promise<DataResponse<InstructorData>>;
|
|
310
|
+
updateInstructor(instructorId: string, instructorData: Instructor, jwt: string): Promise<void>;
|
|
311
|
+
deleteInstructor(instructorId: string, jwt: string): Promise<void>;
|
|
312
|
+
addSpecialty(instructorId: string, specialty: Specialty, jwt: string): Promise<void>;
|
|
313
|
+
removeSpecialty(instructorId: string, specialtyId: string, jwt: string): Promise<void>;
|
|
314
|
+
}
|
|
315
|
+
|
|
258
316
|
declare class APIError extends Error {
|
|
259
317
|
status: number;
|
|
260
318
|
messages: string[];
|
|
@@ -269,9 +327,10 @@ declare class VitalFit {
|
|
|
269
327
|
user: UserService;
|
|
270
328
|
branch: BranchService;
|
|
271
329
|
paymentMethod: PaymentMethodService;
|
|
330
|
+
instructor: InstructorService;
|
|
272
331
|
constructor(isDevMode: boolean, origin?: string);
|
|
273
332
|
static getInstance(isDevMode?: boolean): VitalFit;
|
|
274
333
|
version(): string;
|
|
275
334
|
}
|
|
276
335
|
|
|
277
|
-
export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type BranchStatusCount, type ClientProfile, type CreateBranchRequest, type DataResponse, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type UUIDModel, type UpdateBranchRequest, type UpdateOperatingHour, type User, type UserApiResponse, UserGender, type UserPaginationOptions, VitalFit, isAPIError };
|
|
336
|
+
export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type BranchStatusCount, type ClientProfile, type CreateBranchRequest, type DataResponse, type Instructor, type InstructorData, type InstructorDataList, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type PaginatedInstructor, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type Specialty, type UUIDModel, type UpdateBranchRequest, type UpdateOperatingHour, type User, type UserApiResponse, UserGender, type UserPaginationOptions, VitalFit, isAPIError };
|
package/dist/index.d.ts
CHANGED
|
@@ -44,7 +44,8 @@ type DataResponse<T> = {
|
|
|
44
44
|
|
|
45
45
|
declare enum UserGender {
|
|
46
46
|
male = "male",
|
|
47
|
-
female = "female"
|
|
47
|
+
female = "female",
|
|
48
|
+
preferNotToSay = "prefer-not-to-say"
|
|
48
49
|
}
|
|
49
50
|
type LoginRequest = {
|
|
50
51
|
email: string;
|
|
@@ -188,7 +189,6 @@ type CreateBranchRequest = {
|
|
|
188
189
|
max_capacity: number;
|
|
189
190
|
name: string;
|
|
190
191
|
operating_hours: OperatingHour[];
|
|
191
|
-
payment_methods: string[];
|
|
192
192
|
phone: string;
|
|
193
193
|
state: string;
|
|
194
194
|
status: string;
|
|
@@ -216,6 +216,52 @@ type UpdateBranchRequest = {
|
|
|
216
216
|
tax_id: string;
|
|
217
217
|
};
|
|
218
218
|
|
|
219
|
+
type Specialty = {
|
|
220
|
+
specialty_id: string;
|
|
221
|
+
specialty_name?: string;
|
|
222
|
+
};
|
|
223
|
+
type InstructorData = {
|
|
224
|
+
biography: string;
|
|
225
|
+
birth_date: string;
|
|
226
|
+
email: string;
|
|
227
|
+
first_name: string;
|
|
228
|
+
gender: string;
|
|
229
|
+
identity_document: string;
|
|
230
|
+
instructor_id: string;
|
|
231
|
+
last_name: string;
|
|
232
|
+
phone: string;
|
|
233
|
+
profile_picture_url: string;
|
|
234
|
+
specialties: Specialty[];
|
|
235
|
+
user_id: string;
|
|
236
|
+
};
|
|
237
|
+
type InstructorDataList = {
|
|
238
|
+
biography: string;
|
|
239
|
+
birth_date: string;
|
|
240
|
+
email: string;
|
|
241
|
+
first_name: string;
|
|
242
|
+
gender: string;
|
|
243
|
+
identity_document: string;
|
|
244
|
+
instructor_id: string;
|
|
245
|
+
last_name: string;
|
|
246
|
+
phone: string;
|
|
247
|
+
profile_picture_url: string;
|
|
248
|
+
user_id: string;
|
|
249
|
+
};
|
|
250
|
+
type Instructor = {
|
|
251
|
+
biography?: string;
|
|
252
|
+
birth_date?: string;
|
|
253
|
+
email?: string;
|
|
254
|
+
first_name?: string;
|
|
255
|
+
gender?: UserGender | null;
|
|
256
|
+
identity_document?: string;
|
|
257
|
+
last_name?: string;
|
|
258
|
+
phone?: string;
|
|
259
|
+
profile_picture_url?: string;
|
|
260
|
+
};
|
|
261
|
+
type PaginatedInstructor = PaginationRequest & {
|
|
262
|
+
identity_doc?: string;
|
|
263
|
+
};
|
|
264
|
+
|
|
219
265
|
declare class AuthService {
|
|
220
266
|
private client;
|
|
221
267
|
constructor(client: Client);
|
|
@@ -255,6 +301,18 @@ declare class PaymentMethodService {
|
|
|
255
301
|
getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>>;
|
|
256
302
|
}
|
|
257
303
|
|
|
304
|
+
declare class InstructorService {
|
|
305
|
+
private client;
|
|
306
|
+
constructor(client: Client);
|
|
307
|
+
getInstructors({ search, identity_doc }: PaginatedInstructor, jwt: string): Promise<DataResponse<InstructorDataList[]>>;
|
|
308
|
+
createInstructor(instructorData: Instructor, jwt: string): Promise<void>;
|
|
309
|
+
getInstructorById(instructorId: string, jwt: string): Promise<DataResponse<InstructorData>>;
|
|
310
|
+
updateInstructor(instructorId: string, instructorData: Instructor, jwt: string): Promise<void>;
|
|
311
|
+
deleteInstructor(instructorId: string, jwt: string): Promise<void>;
|
|
312
|
+
addSpecialty(instructorId: string, specialty: Specialty, jwt: string): Promise<void>;
|
|
313
|
+
removeSpecialty(instructorId: string, specialtyId: string, jwt: string): Promise<void>;
|
|
314
|
+
}
|
|
315
|
+
|
|
258
316
|
declare class APIError extends Error {
|
|
259
317
|
status: number;
|
|
260
318
|
messages: string[];
|
|
@@ -269,9 +327,10 @@ declare class VitalFit {
|
|
|
269
327
|
user: UserService;
|
|
270
328
|
branch: BranchService;
|
|
271
329
|
paymentMethod: PaymentMethodService;
|
|
330
|
+
instructor: InstructorService;
|
|
272
331
|
constructor(isDevMode: boolean, origin?: string);
|
|
273
332
|
static getInstance(isDevMode?: boolean): VitalFit;
|
|
274
333
|
version(): string;
|
|
275
334
|
}
|
|
276
335
|
|
|
277
|
-
export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type BranchStatusCount, type ClientProfile, type CreateBranchRequest, type DataResponse, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type UUIDModel, type UpdateBranchRequest, type UpdateOperatingHour, type User, type UserApiResponse, UserGender, type UserPaginationOptions, VitalFit, isAPIError };
|
|
336
|
+
export { APIError, type BaseModel, type BranchDetails, type BranchPaymentMethod, type BranchStatusCount, type ClientProfile, type CreateBranchRequest, type DataResponse, type Instructor, type InstructorData, type InstructorDataList, type LoginRequest, type LoginResponse, type OperatingHour, type PaginatedBranch, type PaginatedInstructor, type Pagination, type PaginationBranchRequest, type PaginationRequest, type PaymentMethod, type Role, type SignUpRequest, type Specialty, type UUIDModel, type UpdateBranchRequest, type UpdateOperatingHour, type User, type UserApiResponse, UserGender, type UserPaginationOptions, VitalFit, isAPIError };
|
package/dist/index.js
CHANGED
|
@@ -320,10 +320,76 @@ var PaymentMethodService = class {
|
|
|
320
320
|
}
|
|
321
321
|
};
|
|
322
322
|
|
|
323
|
+
// src/services/instructor.ts
|
|
324
|
+
var InstructorService = class {
|
|
325
|
+
client;
|
|
326
|
+
constructor(client) {
|
|
327
|
+
this.client = client;
|
|
328
|
+
this.getInstructors = this.getInstructors.bind(this);
|
|
329
|
+
this.createInstructor = this.createInstructor.bind(this);
|
|
330
|
+
this.getInstructorById = this.getInstructorById.bind(this);
|
|
331
|
+
this.updateInstructor = this.updateInstructor.bind(this);
|
|
332
|
+
this.deleteInstructor = this.deleteInstructor.bind(this);
|
|
333
|
+
this.addSpecialty = this.addSpecialty.bind(this);
|
|
334
|
+
this.removeSpecialty = this.removeSpecialty.bind(this);
|
|
335
|
+
}
|
|
336
|
+
async getInstructors({ search, identity_doc }, jwt) {
|
|
337
|
+
const response = await this.client.get({
|
|
338
|
+
url: "/instructor",
|
|
339
|
+
jwt,
|
|
340
|
+
params: {
|
|
341
|
+
search,
|
|
342
|
+
identity_doc
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
return response;
|
|
346
|
+
}
|
|
347
|
+
async createInstructor(instructorData, jwt) {
|
|
348
|
+
await this.client.post({
|
|
349
|
+
url: "/instructor",
|
|
350
|
+
jwt,
|
|
351
|
+
data: instructorData
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
async getInstructorById(instructorId, jwt) {
|
|
355
|
+
const response = await this.client.get({
|
|
356
|
+
url: `/instructor/${instructorId}`,
|
|
357
|
+
jwt
|
|
358
|
+
});
|
|
359
|
+
return response;
|
|
360
|
+
}
|
|
361
|
+
async updateInstructor(instructorId, instructorData, jwt) {
|
|
362
|
+
await this.client.put({
|
|
363
|
+
url: `/instructor/${instructorId}`,
|
|
364
|
+
jwt,
|
|
365
|
+
data: instructorData
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
async deleteInstructor(instructorId, jwt) {
|
|
369
|
+
await this.client.delete({
|
|
370
|
+
url: `/instructor/${instructorId}`,
|
|
371
|
+
jwt
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
async addSpecialty(instructorId, specialty, jwt) {
|
|
375
|
+
await this.client.post({
|
|
376
|
+
url: `/instructor/${instructorId}/specialty`,
|
|
377
|
+
jwt
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
async removeSpecialty(instructorId, specialtyId, jwt) {
|
|
381
|
+
await this.client.delete({
|
|
382
|
+
url: `/instructor/${instructorId}/specialty/${specialtyId}`,
|
|
383
|
+
jwt
|
|
384
|
+
});
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
|
|
323
388
|
// src/types/auth.ts
|
|
324
389
|
var UserGender = /* @__PURE__ */ ((UserGender2) => {
|
|
325
390
|
UserGender2["male"] = "male";
|
|
326
391
|
UserGender2["female"] = "female";
|
|
392
|
+
UserGender2["preferNotToSay"] = "prefer-not-to-say";
|
|
327
393
|
return UserGender2;
|
|
328
394
|
})(UserGender || {});
|
|
329
395
|
|
|
@@ -335,12 +401,14 @@ var VitalFit = class _VitalFit {
|
|
|
335
401
|
user;
|
|
336
402
|
branch;
|
|
337
403
|
paymentMethod;
|
|
404
|
+
instructor;
|
|
338
405
|
constructor(isDevMode, origin) {
|
|
339
406
|
this.client = new Client(isDevMode, origin);
|
|
340
407
|
this.auth = new AuthService(this.client);
|
|
341
408
|
this.user = new UserService(this.client);
|
|
342
409
|
this.branch = new BranchService(this.client);
|
|
343
410
|
this.paymentMethod = new PaymentMethodService(this.client);
|
|
411
|
+
this.instructor = new InstructorService(this.client);
|
|
344
412
|
}
|
|
345
413
|
static getInstance(isDevMode = false) {
|
|
346
414
|
if (!_VitalFit.instance) {
|
|
@@ -349,7 +417,7 @@ var VitalFit = class _VitalFit {
|
|
|
349
417
|
return _VitalFit.instance;
|
|
350
418
|
}
|
|
351
419
|
version() {
|
|
352
|
-
return "0.0.
|
|
420
|
+
return "0.0.33";
|
|
353
421
|
}
|
|
354
422
|
};
|
|
355
423
|
export {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/types/auth.ts","../src/index.ts"],"sourcesContent":["import axios, { type AxiosInstance } from 'axios';\nimport { BASE_URL, DEV_URL } from './settings';\nimport { APIError } from './errors';\nimport type { Pagination } from './types';\n\nexport type ClientConfig = {\n url: string;\n jwt?: string;\n data?: object;\n params?: object;\n};\n\nexport class Client {\n private client: AxiosInstance;\n jwt?: string;\n\n constructor(isDevMode: boolean, origin?: string) {\n let headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n if (origin) {\n headers['Origin'] = origin;\n }\n this.client = axios.create({\n baseURL: isDevMode ? DEV_URL : BASE_URL,\n headers,\n });\n }\n\n async call(method: string, config: ClientConfig): Promise<Response> {\n if (config.jwt) {\n this.client.interceptors.request.use((axiosConfig) => {\n if (axiosConfig.headers) {\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`;\n }\n return axiosConfig;\n });\n }\n try {\n const response = await this.client.request({\n method: method,\n url: config.url,\n data: config.data,\n params: config.params,\n });\n this.client.interceptors.request.clear();\n return response.data;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: unknown) {\n if (axios.isAxiosError(error)) {\n const errorMessage = error.response?.data?.error;\n if (typeof errorMessage === 'string') {\n throw new APIError([errorMessage], error.response?.status ?? 500);\n }\n throw new APIError(\n ['Ocurrió un error inesperado'],\n error.response?.status ?? 500,\n );\n }\n throw new Error(error as string);\n }\n }\n\n async get(config: ClientConfig): Promise<any> {\n const isPaginated = config.params && 'page' in config.params;\n\n if (isPaginated) {\n const response = (await this.call(\n 'get',\n config,\n )) as unknown as Pagination<any>;\n\n const baseURL = this.client.defaults.baseURL || '';\n\n if (response.next) {\n response.next = `${baseURL}${response.next}`;\n }\n if (response.previous) {\n response.previous = `${baseURL}${response.previous}`;\n }\n\n return response;\n } else {\n const data = await this.call('get', config);\n return data;\n }\n }\n\n async post(config: ClientConfig) {\n const data = await this.call('post', config);\n return data;\n }\n\n async put(config: ClientConfig) {\n const data = await this.call('put', config);\n return data;\n }\n\n async patch(config: ClientConfig) {\n const data = await this.call('patch', config);\n return data;\n }\n\n async delete(config: ClientConfig) {\n const data = await this.call('delete', config);\n return data;\n }\n\n setJWT(jwt: string) {\n this.jwt = jwt;\n }\n\n removeJWT() {\n this.jwt = undefined;\n }\n}\n","export const BASE_URL = 'https://api-rm8x.onrender.com/v1';\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1';\n","export class APIError extends Error {\n status: number;\n messages: string[];\n constructor(messages: string[], status: number) {\n super(messages.join(', '));\n this.status = status;\n this.messages = messages;\n }\n}\n\nexport const isAPIError = (error: unknown): error is APIError => {\n return error instanceof APIError;\n};\n","import { Client } from '../client';\nimport type { LoginRequest, LoginResponse, SignUpRequest } from '../types';\n\nexport class AuthService {\n private client: Client;\n constructor(client: Client) {\n this.client = client;\n this.login = this.login.bind(this);\n this.signUp = this.signUp.bind(this);\n this.signUpStaff = this.signUpStaff.bind(this);\n this.forgotPassword = this.forgotPassword.bind(this);\n this.resetPassword = this.resetPassword.bind(this);\n this.verifyEmail = this.verifyEmail.bind(this);\n\n this.logout = this.logout.bind(this);\n this.saveJWT = this.saveJWT.bind(this);\n }\n\n async login({\n email,\n password,\n context,\n }: LoginRequest): Promise<LoginResponse> {\n const response = await this.client.post({\n url: '/auth/login',\n data: {\n email,\n password,\n context,\n },\n });\n return response as unknown as LoginResponse;\n }\n\n logout(): void {\n this.client.removeJWT();\n }\n\n saveJWT(jwt: string): void {\n this.client.setJWT(jwt);\n }\n\n async signUp(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\n if (signUpData.role_name != 'client') {\n throw new Error('Only clients can sign up using this method');\n }\n if (!birthDateRegex.test(signUpData.birth_date)) {\n throw new Error('Birth date must be in the format YYYY-MM-DD');\n }\n await this.client.post({\n url: '/auth/register',\n data: signUpData,\n });\n }\n\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\n if (!birthDateRegex.test(signUpData.birth_date)) {\n throw new Error('Birth date must be in the format YYYY-MM-DD');\n }\n await this.client.post({\n url: '/auth/register-staff',\n data: signUpData,\n });\n }\n async forgotPassword(email: string): Promise<void> {\n await this.client.post({\n url: '/auth/password/forgot',\n data: {\n email,\n },\n });\n }\n\n async resetPassword(\n otp: string,\n password: string,\n repeatPassword: string,\n ): Promise<void> {\n await this.client.post({\n url: '/auth/password/reset',\n data: {\n otp,\n password,\n repeatPassword,\n },\n });\n }\n\n async verifyEmail(otp: string): Promise<void> {\n await this.client.post({\n url: '/auth/activate',\n data: {\n otp,\n },\n });\n }\n}\n","import { Client } from '@/client';\nimport type {\n UserApiResponse,\n DataResponse,\n User,\n UserPaginationOptions,\n} from '@/types';\n\nexport class UserService {\n client: Client;\n constructor(client: Client) {\n this.client = client;\n this.WhoAmI = this.WhoAmI.bind(this);\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\n this.getClientUsers = this.getClientUsers.bind(this);\n this.getStaffUsers = this.getStaffUsers.bind(this);\n }\n\n async getStaffUsers(\n { search, role }: UserPaginationOptions,\n jwt: string,\n ): Promise<DataResponse<User[]>> {\n const response = await this.client.get({\n url: '/user/users',\n jwt,\n params: {\n search,\n role,\n },\n });\n\n return response as unknown as DataResponse<User[]>;\n }\n\n async WhoAmI(jwt: string): Promise<UserApiResponse> {\n const response = await this.client.get({\n url: '/user/whoami',\n jwt,\n });\n return response as unknown as UserApiResponse;\n }\n async getBranchAdmins(jwt: string): Promise<DataResponse<User[]>> {\n const response = await this.client.get({\n url: '/user/branch-admins',\n jwt,\n });\n return response as unknown as DataResponse<User[]>;\n }\n\n async getClientUsers(\n jwt: string,\n options: UserPaginationOptions = {},\n ): Promise<DataResponse<User[]>> {\n const response = await this.client.get({\n url: '/user/clients',\n jwt,\n params: options,\n });\n return response as unknown as DataResponse<User[]>;\n }\n}\n","import type { Pagination, CreateBranchRequest, DataResponse } from '@/types';\nimport type {\n PaginatedBranch,\n PaginationBranchRequest,\n BranchStatusCount,\n BranchDetails,\n UpdateBranchRequest,\n} from '../types/branch';\n\nexport class BranchService {\n private client: any;\n\n constructor(client: any) {\n this.client = client;\n this.getBranches = this.getBranches.bind(this);\n this.delete = this.delete.bind(this);\n this.getBranchStatusCount = this.getBranchStatusCount.bind(this);\n this.createBranch = this.createBranch.bind(this);\n this.getBranchById = this.getBranchById.bind(this);\n this.updateBranch = this.updateBranch.bind(this);\n }\n\n async updateBranch(\n branchId: string,\n branchData: UpdateBranchRequest,\n jwt: string,\n ): Promise<void> {\n await this.client.put({\n url: `/branches/${branchId}`,\n jwt,\n data: branchData,\n });\n }\n\n async getBranchById(branchId: string, jwt: string): Promise<BranchDetails> {\n const response = await this.client.get({\n url: `/branches/${branchId}`,\n jwt,\n });\n return response as unknown as BranchDetails;\n }\n\n async getBranches(\n { page = 1, limit = 10, search, status, location }: PaginationBranchRequest,\n jwt: string,\n ): Promise<Pagination<PaginatedBranch[]>> {\n const response = await this.client.get({\n url: '/branches',\n jwt,\n params: {\n page,\n limit,\n search,\n status,\n location,\n },\n });\n return response as unknown as Pagination<PaginatedBranch[]>;\n }\n\n async delete(branchId: string, jwt: string): Promise<void> {\n await this.client.delete({\n url: `/branches/${branchId}`,\n jwt,\n });\n }\n\n async getBranchStatusCount(\n jwt: string,\n ): Promise<DataResponse<BranchStatusCount>> {\n const response = await this.client.get({\n url: '/branches/status',\n jwt,\n });\n return response as unknown as DataResponse<BranchStatusCount>;\n }\n\n async createBranch(\n branchData: CreateBranchRequest,\n jwt: string,\n ): Promise<void> {\n await this.client.post({\n url: '/branches',\n jwt,\n data: branchData,\n });\n }\n}\n","import { Client } from '../client';\nimport type { DataResponse, PaymentMethod } from '../types';\n\nexport class PaymentMethodService {\n private client: Client;\n\n constructor(client: Client) {\n this.client = client;\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\n }\n\n async getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>> {\n const response = await this.client.get({\n url: '/billing/payment-methods',\n jwt,\n });\n return response as unknown as DataResponse<PaymentMethod[]>;\n }\n}\n","export enum UserGender {\n male = 'male',\n female = 'female',\n}\n\nexport type LoginRequest = {\n email: string;\n password: string;\n context?: string;\n};\n\nexport type LoginResponse = {\n token: string;\n};\n\nexport type SignUpRequest = {\n first_name: string;\n last_name: string;\n email: string;\n password: string;\n identity_document: string;\n phone?: string | null;\n birth_date: string;\n gender?: UserGender | null;\n profile_picture_url?: string | null;\n role_name?: string | null;\n};\n","import { Client } from './client';\nimport {\n AuthService,\n UserService,\n BranchService,\n PaymentMethodService,\n} from './services';\n\nexport class VitalFit {\n private static instance: VitalFit;\n client: Client;\n auth: AuthService;\n user: UserService;\n branch: BranchService;\n paymentMethod: PaymentMethodService;\n\n constructor(isDevMode: boolean, origin?: string) {\n this.client = new Client(isDevMode, origin);\n this.auth = new AuthService(this.client);\n this.user = new UserService(this.client);\n this.branch = new BranchService(this.client);\n this.paymentMethod = new PaymentMethodService(this.client);\n }\n\n static getInstance(isDevMode = false): VitalFit {\n if (!VitalFit.instance) {\n VitalFit.instance = new VitalFit(isDevMode);\n }\n return VitalFit.instance;\n }\n\n version(): string {\n return '0.0.31';\n }\n}\n\nexport * from './types';\nexport * from './errors';\n"],"mappings":"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","names":["UserGender"]}
|
|
1
|
+
{"version":3,"sources":["../src/client.ts","../src/settings.ts","../src/errors/errors.ts","../src/services/auth.ts","../src/services/user.ts","../src/services/branch.ts","../src/services/payment-methods.ts","../src/services/instructor.ts","../src/types/auth.ts","../src/index.ts"],"sourcesContent":["import axios, { type AxiosInstance } from 'axios';\r\nimport { BASE_URL, DEV_URL } from './settings';\r\nimport { APIError } from './errors';\r\nimport type { Pagination } from './types';\r\n\r\nexport type ClientConfig = {\r\n url: string;\r\n jwt?: string;\r\n data?: object;\r\n params?: object;\r\n};\r\n\r\nexport class Client {\r\n private client: AxiosInstance;\r\n jwt?: string;\r\n\r\n constructor(isDevMode: boolean, origin?: string) {\r\n let headers: Record<string, string> = {\r\n 'Content-Type': 'application/json',\r\n };\r\n if (origin) {\r\n headers['Origin'] = origin;\r\n }\r\n this.client = axios.create({\r\n baseURL: isDevMode ? DEV_URL : BASE_URL,\r\n headers,\r\n });\r\n }\r\n\r\n async call(method: string, config: ClientConfig): Promise<Response> {\r\n if (config.jwt) {\r\n this.client.interceptors.request.use((axiosConfig) => {\r\n if (axiosConfig.headers) {\r\n axiosConfig.headers['Authorization'] = `Bearer ${config.jwt}`;\r\n }\r\n return axiosConfig;\r\n });\r\n }\r\n try {\r\n const response = await this.client.request({\r\n method: method,\r\n url: config.url,\r\n data: config.data,\r\n params: config.params,\r\n });\r\n this.client.interceptors.request.clear();\r\n return response.data;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n } catch (error: unknown) {\r\n if (axios.isAxiosError(error)) {\r\n const errorMessage = error.response?.data?.error;\r\n if (typeof errorMessage === 'string') {\r\n throw new APIError([errorMessage], error.response?.status ?? 500);\r\n }\r\n throw new APIError(\r\n ['Ocurrió un error inesperado'],\r\n error.response?.status ?? 500,\r\n );\r\n }\r\n throw new Error(error as string);\r\n }\r\n }\r\n\r\n async get(config: ClientConfig): Promise<any> {\r\n const isPaginated = config.params && 'page' in config.params;\r\n\r\n if (isPaginated) {\r\n const response = (await this.call(\r\n 'get',\r\n config,\r\n )) as unknown as Pagination<any>;\r\n\r\n const baseURL = this.client.defaults.baseURL || '';\r\n\r\n if (response.next) {\r\n response.next = `${baseURL}${response.next}`;\r\n }\r\n if (response.previous) {\r\n response.previous = `${baseURL}${response.previous}`;\r\n }\r\n\r\n return response;\r\n } else {\r\n const data = await this.call('get', config);\r\n return data;\r\n }\r\n }\r\n\r\n async post(config: ClientConfig) {\r\n const data = await this.call('post', config);\r\n return data;\r\n }\r\n\r\n async put(config: ClientConfig) {\r\n const data = await this.call('put', config);\r\n return data;\r\n }\r\n\r\n async patch(config: ClientConfig) {\r\n const data = await this.call('patch', config);\r\n return data;\r\n }\r\n\r\n async delete(config: ClientConfig) {\r\n const data = await this.call('delete', config);\r\n return data;\r\n }\r\n\r\n setJWT(jwt: string) {\r\n this.jwt = jwt;\r\n }\r\n\r\n removeJWT() {\r\n this.jwt = undefined;\r\n }\r\n}\r\n","export const BASE_URL = 'https://api-rm8x.onrender.com/v1';\r\nexport const DEV_URL = 'https://api-rm8x.onrender.com/v1';\r\n","export class APIError extends Error {\r\n status: number;\r\n messages: string[];\r\n constructor(messages: string[], status: number) {\r\n super(messages.join(', '));\r\n this.status = status;\r\n this.messages = messages;\r\n }\r\n}\r\n\r\nexport const isAPIError = (error: unknown): error is APIError => {\r\n return error instanceof APIError;\r\n};\r\n","import { Client } from '../client';\r\nimport type { LoginRequest, LoginResponse, SignUpRequest } from '../types';\r\n\r\nexport class AuthService {\r\n private client: Client;\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.login = this.login.bind(this);\r\n this.signUp = this.signUp.bind(this);\r\n this.signUpStaff = this.signUpStaff.bind(this);\r\n this.forgotPassword = this.forgotPassword.bind(this);\r\n this.resetPassword = this.resetPassword.bind(this);\r\n this.verifyEmail = this.verifyEmail.bind(this);\r\n\r\n this.logout = this.logout.bind(this);\r\n this.saveJWT = this.saveJWT.bind(this);\r\n }\r\n\r\n async login({\r\n email,\r\n password,\r\n context,\r\n }: LoginRequest): Promise<LoginResponse> {\r\n const response = await this.client.post({\r\n url: '/auth/login',\r\n data: {\r\n email,\r\n password,\r\n context,\r\n },\r\n });\r\n return response as unknown as LoginResponse;\r\n }\r\n\r\n logout(): void {\r\n this.client.removeJWT();\r\n }\r\n\r\n saveJWT(jwt: string): void {\r\n this.client.setJWT(jwt);\r\n }\r\n\r\n async signUp(signUpData: SignUpRequest): Promise<void> {\r\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n if (signUpData.role_name != 'client') {\r\n throw new Error('Only clients can sign up using this method');\r\n }\r\n if (!birthDateRegex.test(signUpData.birth_date)) {\r\n throw new Error('Birth date must be in the format YYYY-MM-DD');\r\n }\r\n await this.client.post({\r\n url: '/auth/register',\r\n data: signUpData,\r\n });\r\n }\r\n\r\n async signUpStaff(signUpData: SignUpRequest): Promise<void> {\r\n const birthDateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\r\n if (!birthDateRegex.test(signUpData.birth_date)) {\r\n throw new Error('Birth date must be in the format YYYY-MM-DD');\r\n }\r\n await this.client.post({\r\n url: '/auth/register-staff',\r\n data: signUpData,\r\n });\r\n }\r\n async forgotPassword(email: string): Promise<void> {\r\n await this.client.post({\r\n url: '/auth/password/forgot',\r\n data: {\r\n email,\r\n },\r\n });\r\n }\r\n\r\n async resetPassword(\r\n otp: string,\r\n password: string,\r\n repeatPassword: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: '/auth/password/reset',\r\n data: {\r\n otp,\r\n password,\r\n repeatPassword,\r\n },\r\n });\r\n }\r\n\r\n async verifyEmail(otp: string): Promise<void> {\r\n await this.client.post({\r\n url: '/auth/activate',\r\n data: {\r\n otp,\r\n },\r\n });\r\n }\r\n}\r\n","import { Client } from '@/client';\r\nimport type {\r\n UserApiResponse,\r\n DataResponse,\r\n User,\r\n UserPaginationOptions,\r\n} from '@/types';\r\n\r\nexport class UserService {\r\n client: Client;\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.WhoAmI = this.WhoAmI.bind(this);\r\n this.getBranchAdmins = this.getBranchAdmins.bind(this);\r\n this.getClientUsers = this.getClientUsers.bind(this);\r\n this.getStaffUsers = this.getStaffUsers.bind(this);\r\n }\r\n\r\n async getStaffUsers(\r\n { search, role }: UserPaginationOptions,\r\n jwt: string,\r\n ): Promise<DataResponse<User[]>> {\r\n const response = await this.client.get({\r\n url: '/user/users',\r\n jwt,\r\n params: {\r\n search,\r\n role,\r\n },\r\n });\r\n\r\n return response as unknown as DataResponse<User[]>;\r\n }\r\n\r\n async WhoAmI(jwt: string): Promise<UserApiResponse> {\r\n const response = await this.client.get({\r\n url: '/user/whoami',\r\n jwt,\r\n });\r\n return response as unknown as UserApiResponse;\r\n }\r\n async getBranchAdmins(jwt: string): Promise<DataResponse<User[]>> {\r\n const response = await this.client.get({\r\n url: '/user/branch-admins',\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<User[]>;\r\n }\r\n\r\n async getClientUsers(\r\n jwt: string,\r\n options: UserPaginationOptions = {},\r\n ): Promise<DataResponse<User[]>> {\r\n const response = await this.client.get({\r\n url: '/user/clients',\r\n jwt,\r\n params: options,\r\n });\r\n return response as unknown as DataResponse<User[]>;\r\n }\r\n}\r\n","import type { Pagination, CreateBranchRequest, DataResponse } from '@/types';\r\nimport type {\r\n PaginatedBranch,\r\n PaginationBranchRequest,\r\n BranchStatusCount,\r\n BranchDetails,\r\n UpdateBranchRequest,\r\n} from '../types/branch';\r\n\r\nexport class BranchService {\r\n private client: any;\r\n\r\n constructor(client: any) {\r\n this.client = client;\r\n this.getBranches = this.getBranches.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.getBranchStatusCount = this.getBranchStatusCount.bind(this);\r\n this.createBranch = this.createBranch.bind(this);\r\n this.getBranchById = this.getBranchById.bind(this);\r\n this.updateBranch = this.updateBranch.bind(this);\r\n }\r\n\r\n async updateBranch(\r\n branchId: string,\r\n branchData: UpdateBranchRequest,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.put({\r\n url: `/branches/${branchId}`,\r\n jwt,\r\n data: branchData,\r\n });\r\n }\r\n\r\n async getBranchById(branchId: string, jwt: string): Promise<BranchDetails> {\r\n const response = await this.client.get({\r\n url: `/branches/${branchId}`,\r\n jwt,\r\n });\r\n return response as unknown as BranchDetails;\r\n }\r\n\r\n async getBranches(\r\n { page = 1, limit = 10, search, status, location }: PaginationBranchRequest,\r\n jwt: string,\r\n ): Promise<Pagination<PaginatedBranch[]>> {\r\n const response = await this.client.get({\r\n url: '/branches',\r\n jwt,\r\n params: {\r\n page,\r\n limit,\r\n search,\r\n status,\r\n location,\r\n },\r\n });\r\n return response as unknown as Pagination<PaginatedBranch[]>;\r\n }\r\n\r\n async delete(branchId: string, jwt: string): Promise<void> {\r\n await this.client.delete({\r\n url: `/branches/${branchId}`,\r\n jwt,\r\n });\r\n }\r\n\r\n async getBranchStatusCount(\r\n jwt: string,\r\n ): Promise<DataResponse<BranchStatusCount>> {\r\n const response = await this.client.get({\r\n url: '/branches/status',\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<BranchStatusCount>;\r\n }\r\n\r\n async createBranch(\r\n branchData: CreateBranchRequest,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: '/branches',\r\n jwt,\r\n data: branchData,\r\n });\r\n }\r\n}\r\n","import { Client } from '../client';\r\nimport type { DataResponse, PaymentMethod } from '../types';\r\n\r\nexport class PaymentMethodService {\r\n private client: Client;\r\n\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.getPaymentMethods = this.getPaymentMethods.bind(this);\r\n }\r\n\r\n async getPaymentMethods(jwt: string): Promise<DataResponse<PaymentMethod[]>> {\r\n const response = await this.client.get({\r\n url: '/billing/payment-methods',\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<PaymentMethod[]>;\r\n }\r\n}\r\n","import type {\r\n Instructor,\r\n DataResponse,\r\n InstructorDataList,\r\n PaginatedInstructor,\r\n InstructorData,\r\n Specialty,\r\n} from '@/types';\r\nimport { Client } from '../client';\r\n\r\nexport class InstructorService {\r\n private client: Client;\r\n\r\n constructor(client: Client) {\r\n this.client = client;\r\n this.getInstructors = this.getInstructors.bind(this);\r\n this.createInstructor = this.createInstructor.bind(this);\r\n this.getInstructorById = this.getInstructorById.bind(this);\r\n this.updateInstructor = this.updateInstructor.bind(this);\r\n this.deleteInstructor = this.deleteInstructor.bind(this);\r\n this.addSpecialty = this.addSpecialty.bind(this);\r\n this.removeSpecialty = this.removeSpecialty.bind(this);\r\n }\r\n\r\n async getInstructors(\r\n { search, identity_doc }: PaginatedInstructor,\r\n jwt: string,\r\n ): Promise<DataResponse<InstructorDataList[]>> {\r\n const response = await this.client.get({\r\n url: '/instructor',\r\n jwt,\r\n params: {\r\n search,\r\n identity_doc,\r\n },\r\n });\r\n return response as unknown as DataResponse<InstructorDataList[]>;\r\n }\r\n\r\n async createInstructor(\r\n instructorData: Instructor,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: '/instructor',\r\n jwt,\r\n data: instructorData,\r\n });\r\n }\r\n\r\n async getInstructorById(\r\n instructorId: string,\r\n jwt: string,\r\n ): Promise<DataResponse<InstructorData>> {\r\n const response = await this.client.get({\r\n url: `/instructor/${instructorId}`,\r\n jwt,\r\n });\r\n return response as unknown as DataResponse<InstructorData>;\r\n }\r\n\r\n async updateInstructor(\r\n instructorId: string,\r\n instructorData: Instructor,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.put({\r\n url: `/instructor/${instructorId}`,\r\n jwt,\r\n data: instructorData,\r\n });\r\n }\r\n\r\n async deleteInstructor(instructorId: string, jwt: string): Promise<void> {\r\n await this.client.delete({\r\n url: `/instructor/${instructorId}`,\r\n jwt,\r\n });\r\n }\r\n\r\n async addSpecialty(\r\n instructorId: string,\r\n specialty: Specialty,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.post({\r\n url: `/instructor/${instructorId}/specialty`,\r\n jwt,\r\n });\r\n }\r\n\r\n async removeSpecialty(\r\n instructorId: string,\r\n specialtyId: string,\r\n jwt: string,\r\n ): Promise<void> {\r\n await this.client.delete({\r\n url: `/instructor/${instructorId}/specialty/${specialtyId}`,\r\n jwt,\r\n });\r\n }\r\n}\r\n","export enum UserGender {\r\n male = 'male',\r\n female = 'female',\r\n preferNotToSay = 'prefer-not-to-say',\r\n}\r\n\r\nexport type LoginRequest = {\r\n email: string;\r\n password: string;\r\n context?: string;\r\n};\r\n\r\nexport type LoginResponse = {\r\n token: string;\r\n};\r\n\r\nexport type SignUpRequest = {\r\n first_name: string;\r\n last_name: string;\r\n email: string;\r\n password: string;\r\n identity_document: string;\r\n phone?: string | null;\r\n birth_date: string;\r\n gender?: UserGender | null;\r\n profile_picture_url?: string | null;\r\n role_name?: string | null;\r\n};\r\n","import { Client } from './client';\r\nimport {\r\n AuthService,\r\n UserService,\r\n BranchService,\r\n PaymentMethodService,\r\n InstructorService,\r\n} from './services';\r\n\r\nexport class VitalFit {\r\n private static instance: VitalFit;\r\n client: Client;\r\n auth: AuthService;\r\n user: UserService;\r\n branch: BranchService;\r\n paymentMethod: PaymentMethodService;\r\n instructor: InstructorService;\r\n\r\n constructor(isDevMode: boolean, origin?: string) {\r\n this.client = new Client(isDevMode, origin);\r\n this.auth = new AuthService(this.client);\r\n this.user = new UserService(this.client);\r\n this.branch = new BranchService(this.client);\r\n this.paymentMethod = new PaymentMethodService(this.client);\r\n this.instructor = new InstructorService(this.client);\r\n }\r\n\r\n static getInstance(isDevMode = false): VitalFit {\r\n if (!VitalFit.instance) {\r\n VitalFit.instance = new VitalFit(isDevMode);\r\n }\r\n return VitalFit.instance;\r\n }\r\n\r\n version(): string {\r\n return '0.0.33';\r\n }\r\n}\r\n\r\nexport * from './types';\r\nexport * from './errors';\r\n"],"mappings":"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","names":["UserGender"]}
|
package/package.json
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@vitalfit/sdk",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "VitalFit Core API SDK",
|
|
5
|
-
"main": "./dist/index.js",
|
|
6
|
-
"module": "./dist/index.mjs",
|
|
7
|
-
"types": "./dist/index.d.ts",
|
|
8
|
-
"homepage": "https://github.com/VitalFitTeam/vitalfit-sdk",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/VitalFitTeam/vitalfit-sdk.git"
|
|
12
|
-
},
|
|
13
|
-
"files": [
|
|
14
|
-
"dist"
|
|
15
|
-
],
|
|
16
|
-
"scripts": {
|
|
17
|
-
"build": "tsup",
|
|
18
|
-
"lint": "eslint . --ext .ts",
|
|
19
|
-
"format": "prettier --write .",
|
|
20
|
-
"test": "jest",
|
|
21
|
-
"prepare": "husky"
|
|
22
|
-
},
|
|
23
|
-
"keywords": [
|
|
24
|
-
"typescript"
|
|
25
|
-
],
|
|
26
|
-
"author": "vitalfitdcyt <vitalfitdcyt@gmail.com>",
|
|
27
|
-
"license": "MIT",
|
|
28
|
-
"type": "module",
|
|
29
|
-
"devDependencies": {
|
|
30
|
-
"@types/jest": "^30.0.0",
|
|
31
|
-
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
|
32
|
-
"eslint": "^9.38.0",
|
|
33
|
-
"eslint-config-prettier": "^10.1.8",
|
|
34
|
-
"eslint-plugin-prettier": "^5.5.4",
|
|
35
|
-
"husky": "^9.1.7",
|
|
36
|
-
"jest": "^30.2.0",
|
|
37
|
-
"lint-staged": "^16.2.6",
|
|
38
|
-
"prettier": "^3.6.2",
|
|
39
|
-
"ts-jest": "^29.4.5",
|
|
40
|
-
"ts-node": "^10.9.2",
|
|
41
|
-
"tsup": "^8.5.0",
|
|
42
|
-
"typescript": "^5.9.3"
|
|
43
|
-
},
|
|
44
|
-
"dependencies": {
|
|
45
|
-
"axios": "^1.12.2"
|
|
46
|
-
},
|
|
47
|
-
"lint-staged": {
|
|
48
|
-
"*.ts": [
|
|
49
|
-
"eslint --fix",
|
|
50
|
-
"prettier --write"
|
|
51
|
-
]
|
|
52
|
-
}
|
|
53
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@vitalfit/sdk",
|
|
3
|
+
"version": "0.0.33",
|
|
4
|
+
"description": "VitalFit Core API SDK",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"homepage": "https://github.com/VitalFitTeam/vitalfit-sdk",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/VitalFitTeam/vitalfit-sdk.git"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "tsup",
|
|
18
|
+
"lint": "eslint . --ext .ts",
|
|
19
|
+
"format": "prettier --write .",
|
|
20
|
+
"test": "jest",
|
|
21
|
+
"prepare": "husky"
|
|
22
|
+
},
|
|
23
|
+
"keywords": [
|
|
24
|
+
"typescript"
|
|
25
|
+
],
|
|
26
|
+
"author": "vitalfitdcyt <vitalfitdcyt@gmail.com>",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"type": "module",
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@types/jest": "^30.0.0",
|
|
31
|
+
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
|
32
|
+
"eslint": "^9.38.0",
|
|
33
|
+
"eslint-config-prettier": "^10.1.8",
|
|
34
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
35
|
+
"husky": "^9.1.7",
|
|
36
|
+
"jest": "^30.2.0",
|
|
37
|
+
"lint-staged": "^16.2.6",
|
|
38
|
+
"prettier": "^3.6.2",
|
|
39
|
+
"ts-jest": "^29.4.5",
|
|
40
|
+
"ts-node": "^10.9.2",
|
|
41
|
+
"tsup": "^8.5.0",
|
|
42
|
+
"typescript": "^5.9.3"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"axios": "^1.12.2"
|
|
46
|
+
},
|
|
47
|
+
"lint-staged": {
|
|
48
|
+
"*.ts": [
|
|
49
|
+
"eslint --fix",
|
|
50
|
+
"prettier --write"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
}
|