@t4dhg/mcp-factorial 7.0.1 → 8.2.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.
- package/README.md +321 -49
- package/dist/api/ats.d.ts +78 -0
- package/dist/api/ats.d.ts.map +1 -0
- package/dist/api/ats.js +173 -0
- package/dist/api/ats.js.map +1 -0
- package/dist/api/attendance.d.ts +27 -0
- package/dist/api/attendance.d.ts.map +1 -0
- package/dist/api/attendance.js +62 -0
- package/dist/api/attendance.js.map +1 -0
- package/dist/api/contracts.d.ts +40 -0
- package/dist/api/contracts.d.ts.map +1 -0
- package/dist/api/contracts.js +146 -0
- package/dist/api/contracts.js.map +1 -0
- package/dist/api/documents.d.ts +95 -0
- package/dist/api/documents.d.ts.map +1 -0
- package/dist/api/documents.js +265 -0
- package/dist/api/documents.js.map +1 -0
- package/dist/api/employees.d.ts +35 -0
- package/dist/api/employees.d.ts.map +1 -0
- package/dist/api/employees.js +116 -0
- package/dist/api/employees.js.map +1 -0
- package/dist/api/index.d.ts +22 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +36 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/job-catalog.d.ts +21 -0
- package/dist/api/job-catalog.d.ts.map +1 -0
- package/dist/api/job-catalog.js +34 -0
- package/dist/api/job-catalog.js.map +1 -0
- package/dist/api/locations.d.ts +26 -0
- package/dist/api/locations.d.ts.map +1 -0
- package/dist/api/locations.js +59 -0
- package/dist/api/locations.js.map +1 -0
- package/dist/api/payroll.d.ts +30 -0
- package/dist/api/payroll.d.ts.map +1 -0
- package/dist/api/payroll.js +68 -0
- package/dist/api/payroll.js.map +1 -0
- package/dist/api/projects.d.ts +82 -0
- package/dist/api/projects.d.ts.map +1 -0
- package/dist/api/projects.js +193 -0
- package/dist/api/projects.js.map +1 -0
- package/dist/api/shared.d.ts +12 -0
- package/dist/api/shared.d.ts.map +1 -0
- package/dist/api/shared.js +17 -0
- package/dist/api/shared.js.map +1 -0
- package/dist/api/teams.d.ts +26 -0
- package/dist/api/teams.d.ts.map +1 -0
- package/dist/api/teams.js +59 -0
- package/dist/api/teams.js.map +1 -0
- package/dist/api/time-off.d.ts +47 -0
- package/dist/api/time-off.d.ts.map +1 -0
- package/dist/api/time-off.js +112 -0
- package/dist/api/time-off.js.map +1 -0
- package/dist/api/training.d.ts +62 -0
- package/dist/api/training.d.ts.map +1 -0
- package/dist/api/training.js +147 -0
- package/dist/api/training.js.map +1 -0
- package/dist/api/work-areas.d.ts +30 -0
- package/dist/api/work-areas.d.ts.map +1 -0
- package/dist/api/work-areas.js +71 -0
- package/dist/api/work-areas.js.map +1 -0
- package/dist/api.d.ts +3 -434
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +3 -1154
- package/dist/api.js.map +1 -1
- package/dist/audit.d.ts +8 -3
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +8 -3
- package/dist/audit.js.map +1 -1
- package/dist/index.d.ts +6 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3701
- package/dist/index.js.map +1 -1
- package/dist/oauth.d.ts +63 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +143 -0
- package/dist/oauth.js.map +1 -0
- package/dist/schemas/ats.d.ts +326 -0
- package/dist/schemas/ats.d.ts.map +1 -0
- package/dist/schemas/ats.js +121 -0
- package/dist/schemas/ats.js.map +1 -0
- package/dist/schemas/documents.d.ts +78 -0
- package/dist/schemas/documents.d.ts.map +1 -0
- package/dist/schemas/documents.js +34 -0
- package/dist/schemas/documents.js.map +1 -0
- package/dist/schemas/employees.d.ts +528 -0
- package/dist/schemas/employees.d.ts.map +1 -0
- package/dist/schemas/employees.js +206 -0
- package/dist/schemas/employees.js.map +1 -0
- package/dist/schemas/index.d.ts +18 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +28 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/job-catalog.d.ts +57 -0
- package/dist/schemas/job-catalog.d.ts.map +1 -0
- package/dist/schemas/job-catalog.js +27 -0
- package/dist/schemas/job-catalog.js.map +1 -0
- package/dist/schemas/payroll.d.ts +98 -0
- package/dist/schemas/payroll.d.ts.map +1 -0
- package/dist/schemas/payroll.js +43 -0
- package/dist/schemas/payroll.js.map +1 -0
- package/dist/schemas/projects.d.ts +277 -0
- package/dist/schemas/projects.d.ts.map +1 -0
- package/dist/schemas/projects.js +114 -0
- package/dist/schemas/projects.js.map +1 -0
- package/dist/schemas/shared.d.ts +42 -0
- package/dist/schemas/shared.d.ts.map +1 -0
- package/dist/schemas/shared.js +65 -0
- package/dist/schemas/shared.js.map +1 -0
- package/dist/schemas/time-off.d.ts +286 -0
- package/dist/schemas/time-off.d.ts.map +1 -0
- package/dist/schemas/time-off.js +111 -0
- package/dist/schemas/time-off.js.map +1 -0
- package/dist/schemas/training.d.ts +223 -0
- package/dist/schemas/training.d.ts.map +1 -0
- package/dist/schemas/training.js +88 -0
- package/dist/schemas/training.js.map +1 -0
- package/dist/schemas/work-areas.d.ts +71 -0
- package/dist/schemas/work-areas.d.ts.map +1 -0
- package/dist/schemas/work-areas.js +30 -0
- package/dist/schemas/work-areas.js.map +1 -0
- package/dist/schemas.d.ts +4 -1879
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +4 -755
- package/dist/schemas.js.map +1 -1
- package/dist/tool-utils.d.ts +0 -14
- package/dist/tool-utils.d.ts.map +1 -1
- package/dist/tool-utils.js +5 -18
- package/dist/tool-utils.js.map +1 -1
- package/dist/tools/ats.d.ts +6 -0
- package/dist/tools/ats.d.ts.map +1 -0
- package/dist/tools/ats.js +206 -0
- package/dist/tools/ats.js.map +1 -0
- package/dist/tools/attendance.d.ts +6 -0
- package/dist/tools/attendance.d.ts.map +1 -0
- package/dist/tools/attendance.js +86 -0
- package/dist/tools/attendance.js.map +1 -0
- package/dist/tools/contracts.d.ts +6 -0
- package/dist/tools/contracts.d.ts.map +1 -0
- package/dist/tools/contracts.js +63 -0
- package/dist/tools/contracts.js.map +1 -0
- package/dist/tools/documents.d.ts +6 -0
- package/dist/tools/documents.d.ts.map +1 -0
- package/dist/tools/documents.js +135 -0
- package/dist/tools/documents.js.map +1 -0
- package/dist/tools/employees.d.ts +6 -0
- package/dist/tools/employees.d.ts.map +1 -0
- package/dist/tools/employees.js +125 -0
- package/dist/tools/employees.js.map +1 -0
- package/dist/tools/index.d.ts +17 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +221 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/job-catalog.d.ts +6 -0
- package/dist/tools/job-catalog.d.ts.map +1 -0
- package/dist/tools/job-catalog.js +39 -0
- package/dist/tools/job-catalog.js.map +1 -0
- package/dist/tools/locations.d.ts +6 -0
- package/dist/tools/locations.d.ts.map +1 -0
- package/dist/tools/locations.js +93 -0
- package/dist/tools/locations.js.map +1 -0
- package/dist/tools/payroll.d.ts +6 -0
- package/dist/tools/payroll.d.ts.map +1 -0
- package/dist/tools/payroll.js +76 -0
- package/dist/tools/payroll.js.map +1 -0
- package/dist/tools/projects.d.ts +6 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +203 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/shared.d.ts +84 -0
- package/dist/tools/shared.d.ts.map +1 -0
- package/dist/tools/shared.js +164 -0
- package/dist/tools/shared.js.map +1 -0
- package/dist/tools/teams.d.ts +6 -0
- package/dist/tools/teams.d.ts.map +1 -0
- package/dist/tools/teams.js +81 -0
- package/dist/tools/teams.js.map +1 -0
- package/dist/tools/time-off.d.ts +6 -0
- package/dist/tools/time-off.d.ts.map +1 -0
- package/dist/tools/time-off.js +144 -0
- package/dist/tools/time-off.js.map +1 -0
- package/dist/tools/training.d.ts +6 -0
- package/dist/tools/training.d.ts.map +1 -0
- package/dist/tools/training.js +160 -0
- package/dist/tools/training.js.map +1 -0
- package/dist/tools/work-areas.d.ts +6 -0
- package/dist/tools/work-areas.d.ts.map +1 -0
- package/dist/tools/work-areas.js +85 -0
- package/dist/tools/work-areas.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +35 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +97 -0
- package/dist/utils.js.map +1 -1
- package/dist/write-safety.d.ts +229 -2
- package/dist/write-safety.d.ts.map +1 -1
- package/dist/write-safety.js +42 -3
- package/dist/write-safety.js.map +1 -1
- package/llms.txt +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Location API endpoints
|
|
3
|
+
*/
|
|
4
|
+
import { fetchList, fetchOne, postOne, patchOne, deleteOne } from '../http-client.js';
|
|
5
|
+
import { cache, cached, CACHE_TTL, CacheManager } from '../cache.js';
|
|
6
|
+
import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
|
|
7
|
+
import { AuditAction, auditedOperation } from '../audit.js';
|
|
8
|
+
import { validateId } from '../utils.js';
|
|
9
|
+
import { ENDPOINTS, endpointWithId } from '../endpoints.js';
|
|
10
|
+
/**
|
|
11
|
+
* List all locations
|
|
12
|
+
*/
|
|
13
|
+
export async function listLocations(options) {
|
|
14
|
+
const params = buildPaginationParams(options);
|
|
15
|
+
const cacheKey = CacheManager.key('locations', options);
|
|
16
|
+
const locations = await cached(cacheKey, () => fetchList(ENDPOINTS.locations), CACHE_TTL.locations);
|
|
17
|
+
return sliceForPagination(locations, params);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get a specific location by ID
|
|
21
|
+
*/
|
|
22
|
+
export async function getLocation(id) {
|
|
23
|
+
validateId(id, 'location');
|
|
24
|
+
return cached(`location:${id}`, () => fetchOne(endpointWithId(ENDPOINTS.locations, id)), CACHE_TTL.locations);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a new location
|
|
28
|
+
*/
|
|
29
|
+
export async function createLocation(input) {
|
|
30
|
+
return auditedOperation(AuditAction.CREATE, 'location', undefined, async () => {
|
|
31
|
+
const location = await postOne(ENDPOINTS.locations, input);
|
|
32
|
+
cache.invalidatePrefix('locations');
|
|
33
|
+
return location;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Update an existing location
|
|
38
|
+
*/
|
|
39
|
+
export async function updateLocation(id, input) {
|
|
40
|
+
validateId(id, 'location');
|
|
41
|
+
return auditedOperation(AuditAction.UPDATE, 'location', id, async () => {
|
|
42
|
+
const location = await patchOne(endpointWithId(ENDPOINTS.locations, id), input);
|
|
43
|
+
cache.invalidate(`location:${id}`);
|
|
44
|
+
cache.invalidatePrefix('locations');
|
|
45
|
+
return location;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Delete a location
|
|
50
|
+
*/
|
|
51
|
+
export async function deleteLocation(id) {
|
|
52
|
+
validateId(id, 'location');
|
|
53
|
+
return auditedOperation(AuditAction.DELETE, 'location', id, async () => {
|
|
54
|
+
await deleteOne(endpointWithId(ENDPOINTS.locations, id));
|
|
55
|
+
cache.invalidate(`location:${id}`);
|
|
56
|
+
cache.invalidatePrefix('locations');
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=locations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locations.js","sourceRoot":"","sources":["../../src/api/locations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payroll API endpoints (Read-only)
|
|
3
|
+
*/
|
|
4
|
+
import { type PaginatedResponse, type PaginationInput } from '../pagination.js';
|
|
5
|
+
import type { PayrollSupplement, TaxIdentifier, FamilySituation } from '../schemas.js';
|
|
6
|
+
/**
|
|
7
|
+
* List payroll supplements for an employee
|
|
8
|
+
*/
|
|
9
|
+
export declare function listPayrollSupplements(employeeId?: number, options?: PaginationInput): Promise<PaginatedResponse<PayrollSupplement>>;
|
|
10
|
+
/**
|
|
11
|
+
* Get a specific payroll supplement by ID
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPayrollSupplement(id: number): Promise<PayrollSupplement>;
|
|
14
|
+
/**
|
|
15
|
+
* List tax identifiers
|
|
16
|
+
*/
|
|
17
|
+
export declare function listTaxIdentifiers(employeeId?: number, options?: PaginationInput): Promise<PaginatedResponse<TaxIdentifier>>;
|
|
18
|
+
/**
|
|
19
|
+
* Get a specific tax identifier by ID
|
|
20
|
+
*/
|
|
21
|
+
export declare function getTaxIdentifier(id: number): Promise<TaxIdentifier>;
|
|
22
|
+
/**
|
|
23
|
+
* List family situations
|
|
24
|
+
*/
|
|
25
|
+
export declare function listFamilySituations(employeeId?: number, options?: PaginationInput): Promise<PaginatedResponse<FamilySituation>>;
|
|
26
|
+
/**
|
|
27
|
+
* Get a specific family situation by ID
|
|
28
|
+
*/
|
|
29
|
+
export declare function getFamilySituation(id: number): Promise<FamilySituation>;
|
|
30
|
+
//# sourceMappingURL=payroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payroll.d.ts","sourceRoot":"","sources":["../../src/api/payroll.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIvF;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAS/C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAGjF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAS3C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAS7C;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAG7E"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payroll API endpoints (Read-only)
|
|
3
|
+
*/
|
|
4
|
+
import { fetchList, fetchOne } from '../http-client.js';
|
|
5
|
+
import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
|
|
6
|
+
import { validateId } from '../utils.js';
|
|
7
|
+
import { ENDPOINTS, endpointWithId } from '../endpoints.js';
|
|
8
|
+
/**
|
|
9
|
+
* List payroll supplements for an employee
|
|
10
|
+
*/
|
|
11
|
+
export async function listPayrollSupplements(employeeId, options) {
|
|
12
|
+
const params = buildPaginationParams(options);
|
|
13
|
+
const queryParams = {};
|
|
14
|
+
if (employeeId)
|
|
15
|
+
queryParams.employee_id = employeeId;
|
|
16
|
+
const supplements = await fetchList(ENDPOINTS.payrollSupplements, {
|
|
17
|
+
params: queryParams,
|
|
18
|
+
});
|
|
19
|
+
return sliceForPagination(supplements, params);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get a specific payroll supplement by ID
|
|
23
|
+
*/
|
|
24
|
+
export async function getPayrollSupplement(id) {
|
|
25
|
+
validateId(id, 'supplement');
|
|
26
|
+
return fetchOne(endpointWithId(ENDPOINTS.payrollSupplements, id));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* List tax identifiers
|
|
30
|
+
*/
|
|
31
|
+
export async function listTaxIdentifiers(employeeId, options) {
|
|
32
|
+
const params = buildPaginationParams(options);
|
|
33
|
+
const queryParams = {};
|
|
34
|
+
if (employeeId)
|
|
35
|
+
queryParams.employee_id = employeeId;
|
|
36
|
+
const identifiers = await fetchList(ENDPOINTS.taxIdentifiers, {
|
|
37
|
+
params: queryParams,
|
|
38
|
+
});
|
|
39
|
+
return sliceForPagination(identifiers, params);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get a specific tax identifier by ID
|
|
43
|
+
*/
|
|
44
|
+
export async function getTaxIdentifier(id) {
|
|
45
|
+
validateId(id, 'tax identifier');
|
|
46
|
+
return fetchOne(endpointWithId(ENDPOINTS.taxIdentifiers, id));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* List family situations
|
|
50
|
+
*/
|
|
51
|
+
export async function listFamilySituations(employeeId, options) {
|
|
52
|
+
const params = buildPaginationParams(options);
|
|
53
|
+
const queryParams = {};
|
|
54
|
+
if (employeeId)
|
|
55
|
+
queryParams.employee_id = employeeId;
|
|
56
|
+
const situations = await fetchList(ENDPOINTS.familySituations, {
|
|
57
|
+
params: queryParams,
|
|
58
|
+
});
|
|
59
|
+
return sliceForPagination(situations, params);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get a specific family situation by ID
|
|
63
|
+
*/
|
|
64
|
+
export async function getFamilySituation(id) {
|
|
65
|
+
validateId(id, 'family situation');
|
|
66
|
+
return fetchOne(endpointWithId(ENDPOINTS.familySituations, id));
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=payroll.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payroll.js","sourceRoot":"","sources":["../../src/api/payroll.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAmB,EACnB,OAAyB;IAEzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,IAAI,UAAU;QAAE,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAErD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAoB,SAAS,CAAC,kBAAkB,EAAE;QACnF,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAU;IACnD,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAoB,cAAc,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAmB,EACnB,OAAyB;IAEzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,IAAI,UAAU;QAAE,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAErD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAgB,SAAS,CAAC,cAAc,EAAE;QAC3E,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC/C,UAAU,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAgB,cAAc,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAmB,EACnB,OAAyB;IAEzB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAgD,EAAE,CAAC;IACpE,IAAI,UAAU;QAAE,WAAW,CAAC,WAAW,GAAG,UAAU,CAAC;IAErD,MAAM,UAAU,GAAG,MAAM,SAAS,CAAkB,SAAS,CAAC,gBAAgB,EAAE;QAC9E,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EAAU;IACjD,UAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAkB,cAAc,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Management API endpoints: Projects, Tasks, Workers, Time Records
|
|
3
|
+
*/
|
|
4
|
+
import { type PaginatedResponse, type PaginationInput } from '../pagination.js';
|
|
5
|
+
import type { Project, ProjectTask, ProjectWorker, TimeRecord, CreateProjectInput, UpdateProjectInput, CreateProjectTaskInput, UpdateProjectTaskInput, AssignProjectWorkerInput, CreateTimeRecordInput, UpdateTimeRecordInput } from '../schemas.js';
|
|
6
|
+
/**
|
|
7
|
+
* List all projects
|
|
8
|
+
*/
|
|
9
|
+
export declare function listProjects(options?: PaginationInput): Promise<PaginatedResponse<Project>>;
|
|
10
|
+
/**
|
|
11
|
+
* Get a specific project by ID
|
|
12
|
+
*/
|
|
13
|
+
export declare function getProject(id: number): Promise<Project>;
|
|
14
|
+
/**
|
|
15
|
+
* List project tasks
|
|
16
|
+
*/
|
|
17
|
+
export declare function listProjectTasks(projectId?: number, options?: PaginationInput): Promise<PaginatedResponse<ProjectTask>>;
|
|
18
|
+
/**
|
|
19
|
+
* Get a specific project task by ID
|
|
20
|
+
*/
|
|
21
|
+
export declare function getProjectTask(id: number): Promise<ProjectTask>;
|
|
22
|
+
/**
|
|
23
|
+
* List project workers
|
|
24
|
+
*/
|
|
25
|
+
export declare function listProjectWorkers(projectId?: number, options?: PaginationInput): Promise<PaginatedResponse<ProjectWorker>>;
|
|
26
|
+
/**
|
|
27
|
+
* Get a specific project worker by ID
|
|
28
|
+
*/
|
|
29
|
+
export declare function getProjectWorker(id: number): Promise<ProjectWorker>;
|
|
30
|
+
/**
|
|
31
|
+
* List time records
|
|
32
|
+
*/
|
|
33
|
+
export declare function listTimeRecords(projectWorkerId?: number, options?: PaginationInput): Promise<PaginatedResponse<TimeRecord>>;
|
|
34
|
+
/**
|
|
35
|
+
* Get a specific time record by ID
|
|
36
|
+
*/
|
|
37
|
+
export declare function getTimeRecord(id: number): Promise<TimeRecord>;
|
|
38
|
+
/**
|
|
39
|
+
* Create a new project
|
|
40
|
+
*/
|
|
41
|
+
export declare function createProject(input: CreateProjectInput): Promise<Project>;
|
|
42
|
+
/**
|
|
43
|
+
* Update a project
|
|
44
|
+
*/
|
|
45
|
+
export declare function updateProject(id: number, input: UpdateProjectInput): Promise<Project>;
|
|
46
|
+
/**
|
|
47
|
+
* Delete a project
|
|
48
|
+
*/
|
|
49
|
+
export declare function deleteProject(id: number): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Create a project task
|
|
52
|
+
*/
|
|
53
|
+
export declare function createProjectTask(input: CreateProjectTaskInput): Promise<ProjectTask>;
|
|
54
|
+
/**
|
|
55
|
+
* Update a project task
|
|
56
|
+
*/
|
|
57
|
+
export declare function updateProjectTask(id: number, input: UpdateProjectTaskInput): Promise<ProjectTask>;
|
|
58
|
+
/**
|
|
59
|
+
* Delete a project task
|
|
60
|
+
*/
|
|
61
|
+
export declare function deleteProjectTask(id: number): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Assign a worker to a project
|
|
64
|
+
*/
|
|
65
|
+
export declare function assignProjectWorker(input: AssignProjectWorkerInput): Promise<ProjectWorker>;
|
|
66
|
+
/**
|
|
67
|
+
* Remove a worker from a project
|
|
68
|
+
*/
|
|
69
|
+
export declare function removeProjectWorker(id: number): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Create a time record
|
|
72
|
+
*/
|
|
73
|
+
export declare function createTimeRecord(input: CreateTimeRecordInput): Promise<TimeRecord>;
|
|
74
|
+
/**
|
|
75
|
+
* Update a time record
|
|
76
|
+
*/
|
|
77
|
+
export declare function updateTimeRecord(id: number, input: UpdateTimeRecordInput): Promise<TimeRecord>;
|
|
78
|
+
/**
|
|
79
|
+
* Delete a time record
|
|
80
|
+
*/
|
|
81
|
+
export declare function deleteTimeRecord(id: number): Promise<void>;
|
|
82
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AASvB;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAQjG;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO7D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CASzC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAGrE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAS3C;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,eAAe,CAAC,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CASxC;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGnE;AAMD;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAM/E;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAS3F;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ7D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAI3F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAMtB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,CAIjG;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAIxF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,UAAU,CAAC,CAMrB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Management API endpoints: Projects, Tasks, Workers, Time Records
|
|
3
|
+
*/
|
|
4
|
+
import { fetchList, fetchOne, postOne, patchOne, deleteOne } from '../http-client.js';
|
|
5
|
+
import { cache, cached, CACHE_TTL, CacheManager } from '../cache.js';
|
|
6
|
+
import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
|
|
7
|
+
import { AuditAction, auditedOperation } from '../audit.js';
|
|
8
|
+
import { validateId } from '../utils.js';
|
|
9
|
+
import { ENDPOINTS, endpointWithId } from '../endpoints.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Projects - READ endpoints
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* List all projects
|
|
15
|
+
*/
|
|
16
|
+
export async function listProjects(options) {
|
|
17
|
+
const params = buildPaginationParams(options);
|
|
18
|
+
const projects = await cached(CacheManager.key('projects', options), () => fetchList(ENDPOINTS.projects), CACHE_TTL.default);
|
|
19
|
+
return sliceForPagination(projects, params);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get a specific project by ID
|
|
23
|
+
*/
|
|
24
|
+
export async function getProject(id) {
|
|
25
|
+
validateId(id, 'project');
|
|
26
|
+
return cached(`project:${id}`, () => fetchOne(endpointWithId(ENDPOINTS.projects, id)), CACHE_TTL.default);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* List project tasks
|
|
30
|
+
*/
|
|
31
|
+
export async function listProjectTasks(projectId, options) {
|
|
32
|
+
const params = buildPaginationParams(options);
|
|
33
|
+
const queryParams = {};
|
|
34
|
+
if (projectId)
|
|
35
|
+
queryParams.project_ids = projectId;
|
|
36
|
+
const tasks = await fetchList(ENDPOINTS.projectTasks, {
|
|
37
|
+
params: queryParams,
|
|
38
|
+
});
|
|
39
|
+
return sliceForPagination(tasks, params);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get a specific project task by ID
|
|
43
|
+
*/
|
|
44
|
+
export async function getProjectTask(id) {
|
|
45
|
+
validateId(id, 'task');
|
|
46
|
+
return fetchOne(endpointWithId(ENDPOINTS.projectTasks, id));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* List project workers
|
|
50
|
+
*/
|
|
51
|
+
export async function listProjectWorkers(projectId, options) {
|
|
52
|
+
const params = buildPaginationParams(options);
|
|
53
|
+
const queryParams = {};
|
|
54
|
+
if (projectId)
|
|
55
|
+
queryParams.project_ids = projectId;
|
|
56
|
+
const workers = await fetchList(ENDPOINTS.projectWorkers, {
|
|
57
|
+
params: queryParams,
|
|
58
|
+
});
|
|
59
|
+
return sliceForPagination(workers, params);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get a specific project worker by ID
|
|
63
|
+
*/
|
|
64
|
+
export async function getProjectWorker(id) {
|
|
65
|
+
validateId(id, 'project worker');
|
|
66
|
+
return fetchOne(endpointWithId(ENDPOINTS.projectWorkers, id));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* List time records
|
|
70
|
+
*/
|
|
71
|
+
export async function listTimeRecords(projectWorkerId, options) {
|
|
72
|
+
const params = buildPaginationParams(options);
|
|
73
|
+
const queryParams = {};
|
|
74
|
+
if (projectWorkerId)
|
|
75
|
+
queryParams.project_workers_ids = projectWorkerId;
|
|
76
|
+
const records = await fetchList(ENDPOINTS.timeRecords, {
|
|
77
|
+
params: queryParams,
|
|
78
|
+
});
|
|
79
|
+
return sliceForPagination(records, params);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get a specific time record by ID
|
|
83
|
+
*/
|
|
84
|
+
export async function getTimeRecord(id) {
|
|
85
|
+
validateId(id, 'time record');
|
|
86
|
+
return fetchOne(endpointWithId(ENDPOINTS.timeRecords, id));
|
|
87
|
+
}
|
|
88
|
+
// ============================================================================
|
|
89
|
+
// Projects - WRITE endpoints
|
|
90
|
+
// ============================================================================
|
|
91
|
+
/**
|
|
92
|
+
* Create a new project
|
|
93
|
+
*/
|
|
94
|
+
export async function createProject(input) {
|
|
95
|
+
return auditedOperation(AuditAction.CREATE, 'project', undefined, async () => {
|
|
96
|
+
const project = await postOne(ENDPOINTS.projects, input);
|
|
97
|
+
cache.invalidatePrefix('projects');
|
|
98
|
+
return project;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Update a project
|
|
103
|
+
*/
|
|
104
|
+
export async function updateProject(id, input) {
|
|
105
|
+
validateId(id, 'project');
|
|
106
|
+
return auditedOperation(AuditAction.UPDATE, 'project', id, async () => {
|
|
107
|
+
const project = await patchOne(endpointWithId(ENDPOINTS.projects, id), input);
|
|
108
|
+
cache.invalidate(`project:${id}`);
|
|
109
|
+
cache.invalidatePrefix('projects');
|
|
110
|
+
return project;
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Delete a project
|
|
115
|
+
*/
|
|
116
|
+
export async function deleteProject(id) {
|
|
117
|
+
validateId(id, 'project');
|
|
118
|
+
return auditedOperation(AuditAction.DELETE, 'project', id, async () => {
|
|
119
|
+
await deleteOne(endpointWithId(ENDPOINTS.projects, id));
|
|
120
|
+
cache.invalidate(`project:${id}`);
|
|
121
|
+
cache.invalidatePrefix('projects');
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Create a project task
|
|
126
|
+
*/
|
|
127
|
+
export async function createProjectTask(input) {
|
|
128
|
+
return auditedOperation(AuditAction.CREATE, 'project_task', undefined, async () => {
|
|
129
|
+
return postOne(ENDPOINTS.projectTasks, input);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Update a project task
|
|
134
|
+
*/
|
|
135
|
+
export async function updateProjectTask(id, input) {
|
|
136
|
+
validateId(id, 'task');
|
|
137
|
+
return auditedOperation(AuditAction.UPDATE, 'project_task', id, async () => {
|
|
138
|
+
return patchOne(endpointWithId(ENDPOINTS.projectTasks, id), input);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Delete a project task
|
|
143
|
+
*/
|
|
144
|
+
export async function deleteProjectTask(id) {
|
|
145
|
+
validateId(id, 'task');
|
|
146
|
+
return auditedOperation(AuditAction.DELETE, 'project_task', id, async () => {
|
|
147
|
+
await deleteOne(endpointWithId(ENDPOINTS.projectTasks, id));
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Assign a worker to a project
|
|
152
|
+
*/
|
|
153
|
+
export async function assignProjectWorker(input) {
|
|
154
|
+
return auditedOperation(AuditAction.ASSIGN, 'project_worker', undefined, async () => {
|
|
155
|
+
return postOne(ENDPOINTS.projectWorkers, input);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Remove a worker from a project
|
|
160
|
+
*/
|
|
161
|
+
export async function removeProjectWorker(id) {
|
|
162
|
+
validateId(id, 'project worker');
|
|
163
|
+
return auditedOperation(AuditAction.UNASSIGN, 'project_worker', id, async () => {
|
|
164
|
+
await deleteOne(endpointWithId(ENDPOINTS.projectWorkers, id));
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Create a time record
|
|
169
|
+
*/
|
|
170
|
+
export async function createTimeRecord(input) {
|
|
171
|
+
return auditedOperation(AuditAction.CREATE, 'time_record', undefined, async () => {
|
|
172
|
+
return postOne(ENDPOINTS.timeRecords, input);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Update a time record
|
|
177
|
+
*/
|
|
178
|
+
export async function updateTimeRecord(id, input) {
|
|
179
|
+
validateId(id, 'time record');
|
|
180
|
+
return auditedOperation(AuditAction.UPDATE, 'time_record', id, async () => {
|
|
181
|
+
return patchOne(endpointWithId(ENDPOINTS.timeRecords, id), input);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Delete a time record
|
|
186
|
+
*/
|
|
187
|
+
export async function deleteTimeRecord(id) {
|
|
188
|
+
validateId(id, 'time record');
|
|
189
|
+
return auditedOperation(AuditAction.DELETE, 'time_record', id, async () => {
|
|
190
|
+
await deleteOne(endpointWithId(ENDPOINTS.timeRecords, id));
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/api/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared API utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Invalidate all cached data
|
|
6
|
+
*/
|
|
7
|
+
export declare function clearCache(): void;
|
|
8
|
+
/**
|
|
9
|
+
* Invalidate cached data for a specific resource type
|
|
10
|
+
*/
|
|
11
|
+
export declare function invalidateCache(resourceType: string): void;
|
|
12
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/api/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAE1D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared API utilities
|
|
3
|
+
*/
|
|
4
|
+
import { cache } from '../cache.js';
|
|
5
|
+
/**
|
|
6
|
+
* Invalidate all cached data
|
|
7
|
+
*/
|
|
8
|
+
export function clearCache() {
|
|
9
|
+
cache.clear();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Invalidate cached data for a specific resource type
|
|
13
|
+
*/
|
|
14
|
+
export function invalidateCache(resourceType) {
|
|
15
|
+
cache.invalidatePrefix(resourceType);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/api/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,YAAoB;IAClD,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team API endpoints
|
|
3
|
+
*/
|
|
4
|
+
import { type PaginatedResponse, type PaginationInput } from '../pagination.js';
|
|
5
|
+
import type { Team, CreateTeamInput, UpdateTeamInput } from '../schemas.js';
|
|
6
|
+
/**
|
|
7
|
+
* List all teams
|
|
8
|
+
*/
|
|
9
|
+
export declare function listTeams(options?: PaginationInput): Promise<PaginatedResponse<Team>>;
|
|
10
|
+
/**
|
|
11
|
+
* Get a specific team by ID
|
|
12
|
+
*/
|
|
13
|
+
export declare function getTeam(id: number): Promise<Team>;
|
|
14
|
+
/**
|
|
15
|
+
* Create a new team
|
|
16
|
+
*/
|
|
17
|
+
export declare function createTeam(input: CreateTeamInput): Promise<Team>;
|
|
18
|
+
/**
|
|
19
|
+
* Update an existing team
|
|
20
|
+
*/
|
|
21
|
+
export declare function updateTeam(id: number, input: UpdateTeamInput): Promise<Team>;
|
|
22
|
+
/**
|
|
23
|
+
* Delete a team
|
|
24
|
+
*/
|
|
25
|
+
export declare function deleteTeam(id: number): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=teams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../src/api/teams.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAK5E;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAO3F;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQvD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CASlF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team API endpoints
|
|
3
|
+
*/
|
|
4
|
+
import { fetchList, fetchOne, postOne, patchOne, deleteOne } from '../http-client.js';
|
|
5
|
+
import { cache, cached, CACHE_TTL, CacheManager } from '../cache.js';
|
|
6
|
+
import { buildPaginationParams, sliceForPagination, } from '../pagination.js';
|
|
7
|
+
import { AuditAction, auditedOperation } from '../audit.js';
|
|
8
|
+
import { validateId } from '../utils.js';
|
|
9
|
+
import { ENDPOINTS, endpointWithId } from '../endpoints.js';
|
|
10
|
+
/**
|
|
11
|
+
* List all teams
|
|
12
|
+
*/
|
|
13
|
+
export async function listTeams(options) {
|
|
14
|
+
const params = buildPaginationParams(options);
|
|
15
|
+
const cacheKey = CacheManager.key('teams', options);
|
|
16
|
+
const teams = await cached(cacheKey, () => fetchList(ENDPOINTS.teams), CACHE_TTL.teams);
|
|
17
|
+
return sliceForPagination(teams, params);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get a specific team by ID
|
|
21
|
+
*/
|
|
22
|
+
export async function getTeam(id) {
|
|
23
|
+
validateId(id, 'team');
|
|
24
|
+
return cached(`team:${id}`, () => fetchOne(endpointWithId(ENDPOINTS.teams, id)), CACHE_TTL.teams);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create a new team
|
|
28
|
+
*/
|
|
29
|
+
export async function createTeam(input) {
|
|
30
|
+
return auditedOperation(AuditAction.CREATE, 'team', undefined, async () => {
|
|
31
|
+
const team = await postOne(ENDPOINTS.teams, input);
|
|
32
|
+
cache.invalidatePrefix('teams');
|
|
33
|
+
return team;
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Update an existing team
|
|
38
|
+
*/
|
|
39
|
+
export async function updateTeam(id, input) {
|
|
40
|
+
validateId(id, 'team');
|
|
41
|
+
return auditedOperation(AuditAction.UPDATE, 'team', id, async () => {
|
|
42
|
+
const team = await patchOne(endpointWithId(ENDPOINTS.teams, id), input);
|
|
43
|
+
cache.invalidate(`team:${id}`);
|
|
44
|
+
cache.invalidatePrefix('teams');
|
|
45
|
+
return team;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Delete a team
|
|
50
|
+
*/
|
|
51
|
+
export async function deleteTeam(id) {
|
|
52
|
+
validateId(id, 'team');
|
|
53
|
+
return auditedOperation(AuditAction.DELETE, 'team', id, async () => {
|
|
54
|
+
await deleteOne(endpointWithId(ENDPOINTS.teams, id));
|
|
55
|
+
cache.invalidate(`team:${id}`);
|
|
56
|
+
cache.invalidatePrefix('teams');
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=teams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../src/api/teams.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time Off API endpoints: Leaves, Leave Types, Allowances
|
|
3
|
+
*/
|
|
4
|
+
import { type PaginatedResponse } from '../pagination.js';
|
|
5
|
+
import type { Leave, LeaveType, Allowance, CreateLeaveInput, UpdateLeaveInput, LeaveDecisionInput } from '../schemas.js';
|
|
6
|
+
import type { ListLeavesOptions, ListAllowancesOptions } from '../types.js';
|
|
7
|
+
/**
|
|
8
|
+
* List leaves with optional filtering
|
|
9
|
+
*/
|
|
10
|
+
export declare function listLeaves(options?: ListLeavesOptions): Promise<PaginatedResponse<Leave>>;
|
|
11
|
+
/**
|
|
12
|
+
* Get a specific leave by ID
|
|
13
|
+
*/
|
|
14
|
+
export declare function getLeave(id: number): Promise<Leave>;
|
|
15
|
+
/**
|
|
16
|
+
* List all leave types
|
|
17
|
+
*/
|
|
18
|
+
export declare function listLeaveTypes(): Promise<LeaveType[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Get a specific leave type by ID
|
|
21
|
+
*/
|
|
22
|
+
export declare function getLeaveType(id: number): Promise<LeaveType>;
|
|
23
|
+
/**
|
|
24
|
+
* List allowances with optional filtering by employee
|
|
25
|
+
*/
|
|
26
|
+
export declare function listAllowances(options?: ListAllowancesOptions): Promise<PaginatedResponse<Allowance>>;
|
|
27
|
+
/**
|
|
28
|
+
* Create a new leave request
|
|
29
|
+
*/
|
|
30
|
+
export declare function createLeave(input: CreateLeaveInput): Promise<Leave>;
|
|
31
|
+
/**
|
|
32
|
+
* Update a leave request
|
|
33
|
+
*/
|
|
34
|
+
export declare function updateLeave(id: number, input: UpdateLeaveInput): Promise<Leave>;
|
|
35
|
+
/**
|
|
36
|
+
* Cancel a leave request
|
|
37
|
+
*/
|
|
38
|
+
export declare function cancelLeave(id: number): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Approve a leave request
|
|
41
|
+
*/
|
|
42
|
+
export declare function approveLeave(id: number, input?: LeaveDecisionInput): Promise<Leave>;
|
|
43
|
+
/**
|
|
44
|
+
* Reject a leave request
|
|
45
|
+
*/
|
|
46
|
+
export declare function rejectLeave(id: number, input?: LeaveDecisionInput): Promise<Leave>;
|
|
47
|
+
//# sourceMappingURL=time-off.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-off.d.ts","sourceRoot":"","sources":["../../src/api/time-off.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAA2C,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAIvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5E;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAgB/F;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAIzD;AAED;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAM3D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAIjE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAavC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,CAKzE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,CAOrF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM3D;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAUzF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAUxF"}
|