@ikatec/digisac-api-sdk 4.1.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +7 -4
  2. package/dist/apis/authHistory/AuthHistoryApi.cjs +12 -12
  3. package/dist/apis/authHistory/AuthHistoryApi.cjs.map +1 -1
  4. package/dist/apis/authHistory/AuthHistoryApi.d.ts +12 -19
  5. package/dist/apis/authHistory/AuthHistoryApi.d.ts.map +1 -1
  6. package/dist/apis/authHistory/AuthHistoryApi.mjs +12 -12
  7. package/dist/apis/authHistory/AuthHistoryApi.mjs.map +1 -1
  8. package/dist/apis/authHistory/types.d.ts +4 -3
  9. package/dist/apis/authHistory/types.d.ts.map +1 -1
  10. package/dist/apis/customFields/types.d.ts +21 -19
  11. package/dist/apis/customFields/types.d.ts.map +1 -1
  12. package/dist/apis/dashboard/DashboardApi.cjs +54 -0
  13. package/dist/apis/dashboard/DashboardApi.cjs.map +1 -0
  14. package/dist/apis/dashboard/DashboardApi.d.ts +65 -0
  15. package/dist/apis/dashboard/DashboardApi.d.ts.map +1 -0
  16. package/dist/apis/dashboard/DashboardApi.mjs +53 -0
  17. package/dist/apis/dashboard/DashboardApi.mjs.map +1 -0
  18. package/dist/apis/dashboard/index.cjs +4 -0
  19. package/dist/apis/dashboard/index.d.ts +3 -0
  20. package/dist/apis/dashboard/index.d.ts.map +1 -0
  21. package/dist/apis/dashboard/index.mjs +3 -0
  22. package/dist/apis/dashboard/types.cjs +0 -0
  23. package/dist/apis/dashboard/types.d.ts +124 -0
  24. package/dist/apis/dashboard/types.d.ts.map +1 -0
  25. package/dist/apis/dashboard/types.mjs +0 -0
  26. package/dist/apis/holiday/types.d.ts +34 -8
  27. package/dist/apis/holiday/types.d.ts.map +1 -1
  28. package/dist/apis/index.cjs +6 -0
  29. package/dist/apis/index.d.ts +2 -0
  30. package/dist/apis/index.d.ts.map +1 -1
  31. package/dist/apis/index.mjs +5 -1
  32. package/dist/apis/now/NowApi.cjs +37 -0
  33. package/dist/apis/now/NowApi.cjs.map +1 -0
  34. package/dist/apis/now/NowApi.d.ts +26 -0
  35. package/dist/apis/now/NowApi.d.ts.map +1 -0
  36. package/dist/apis/now/NowApi.mjs +36 -0
  37. package/dist/apis/now/NowApi.mjs.map +1 -0
  38. package/dist/apis/now/index.cjs +4 -0
  39. package/dist/apis/now/index.d.ts +3 -0
  40. package/dist/apis/now/index.d.ts.map +1 -0
  41. package/dist/apis/now/index.mjs +3 -0
  42. package/dist/apis/now/types.cjs +0 -0
  43. package/dist/apis/now/types.d.ts +45 -0
  44. package/dist/apis/now/types.d.ts.map +1 -0
  45. package/dist/apis/now/types.mjs +0 -0
  46. package/dist/apis/people/types.d.ts +7 -2
  47. package/dist/apis/people/types.d.ts.map +1 -1
  48. package/dist/apis/permissions/PermissionsApi.cjs +6 -2
  49. package/dist/apis/permissions/PermissionsApi.cjs.map +1 -1
  50. package/dist/apis/permissions/PermissionsApi.d.ts +7 -3
  51. package/dist/apis/permissions/PermissionsApi.d.ts.map +1 -1
  52. package/dist/apis/permissions/PermissionsApi.mjs +6 -2
  53. package/dist/apis/permissions/PermissionsApi.mjs.map +1 -1
  54. package/dist/apis/permissions/types.d.ts +4 -14
  55. package/dist/apis/permissions/types.d.ts.map +1 -1
  56. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.cjs +5 -0
  57. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.cjs.map +1 -1
  58. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.d.ts +5 -0
  59. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.d.ts.map +1 -1
  60. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.mjs +5 -0
  61. package/dist/apis/personalAccessTokens/PersonalAccessTokensApi.mjs.map +1 -1
  62. package/dist/apis/personalAccessTokens/types.d.ts +23 -4
  63. package/dist/apis/personalAccessTokens/types.d.ts.map +1 -1
  64. package/dist/apis/roles/RolesApi.cjs.map +1 -1
  65. package/dist/apis/roles/RolesApi.d.ts +2 -2
  66. package/dist/apis/roles/RolesApi.d.ts.map +1 -1
  67. package/dist/apis/roles/RolesApi.mjs.map +1 -1
  68. package/dist/apis/roles/types.d.ts +27 -4
  69. package/dist/apis/roles/types.d.ts.map +1 -1
  70. package/dist/apis/terms/TermsApi.cjs +4 -1
  71. package/dist/apis/terms/TermsApi.cjs.map +1 -1
  72. package/dist/apis/terms/TermsApi.d.ts +4 -1
  73. package/dist/apis/terms/TermsApi.d.ts.map +1 -1
  74. package/dist/apis/terms/TermsApi.mjs +4 -1
  75. package/dist/apis/terms/TermsApi.mjs.map +1 -1
  76. package/dist/apis/timetable/types.d.ts +12 -7
  77. package/dist/apis/timetable/types.d.ts.map +1 -1
  78. package/dist/core/BaseCrudApi.cjs +3 -30
  79. package/dist/core/BaseCrudApi.cjs.map +1 -1
  80. package/dist/core/BaseCrudApi.d.ts +4 -24
  81. package/dist/core/BaseCrudApi.d.ts.map +1 -1
  82. package/dist/core/BaseCrudApi.mjs +3 -30
  83. package/dist/core/BaseCrudApi.mjs.map +1 -1
  84. package/dist/core/BaseReadApi.cjs +44 -0
  85. package/dist/core/BaseReadApi.cjs.map +1 -0
  86. package/dist/core/BaseReadApi.d.ts +32 -0
  87. package/dist/core/BaseReadApi.d.ts.map +1 -0
  88. package/dist/core/BaseReadApi.mjs +43 -0
  89. package/dist/core/BaseReadApi.mjs.map +1 -0
  90. package/dist/core/index.cjs +2 -0
  91. package/dist/core/index.d.ts +1 -0
  92. package/dist/core/index.d.ts.map +1 -1
  93. package/dist/core/index.mjs +2 -1
  94. package/dist/index.cjs +2 -0
  95. package/dist/index.mjs +2 -1
  96. package/package.json +1 -1
  97. package/src/apis/authHistory/AuthHistoryApi.test.ts +10 -2
  98. package/src/apis/authHistory/AuthHistoryApi.ts +13 -39
  99. package/src/apis/authHistory/types.ts +4 -3
  100. package/src/apis/customFields/types.ts +21 -25
  101. package/src/apis/dashboard/DashboardApi.test-d.ts +49 -0
  102. package/src/apis/dashboard/DashboardApi.test.ts +270 -0
  103. package/src/apis/dashboard/DashboardApi.ts +146 -0
  104. package/src/apis/dashboard/index.ts +2 -0
  105. package/src/apis/dashboard/types.ts +131 -0
  106. package/src/apis/holiday/types.ts +36 -8
  107. package/src/apis/index.ts +2 -0
  108. package/src/apis/now/NowApi.test.ts +125 -0
  109. package/src/apis/now/NowApi.ts +59 -0
  110. package/src/apis/now/index.ts +2 -0
  111. package/src/apis/now/types.ts +47 -0
  112. package/src/apis/payloads.test-d.ts +39 -0
  113. package/src/apis/payloads.test.ts +81 -0
  114. package/src/apis/people/types.ts +7 -2
  115. package/src/apis/permissions/PermissionsApi.test.ts +93 -0
  116. package/src/apis/permissions/PermissionsApi.ts +7 -7
  117. package/src/apis/permissions/types.ts +4 -16
  118. package/src/apis/personalAccessTokens/PersonalAccessTokensApi.ts +5 -0
  119. package/src/apis/personalAccessTokens/types.ts +25 -4
  120. package/src/apis/queryFormat.test.ts +139 -0
  121. package/src/apis/roles/RolesApi.ts +7 -2
  122. package/src/apis/roles/types.ts +27 -4
  123. package/src/apis/terms/TermsApi.ts +4 -1
  124. package/src/apis/timetable/types.ts +13 -7
  125. package/src/core/BaseCrudApi.ts +4 -60
  126. package/src/core/BaseReadApi.ts +70 -0
  127. package/src/core/index.ts +1 -0
@@ -0,0 +1,70 @@
1
+ import type { ApiClient } from './ApiClient'
2
+ import { BaseApi } from './BaseApi'
3
+ import type { GetByIdQuery, HasGetById, HasGetMany, ListQuery, Paginated } from './types'
4
+
5
+ /**
6
+ * Generic read-only resource: `getMany`, `getOne` and `getById` under `basePath`. Base of
7
+ * `BaseCrudApi`, and of the resources the backend only serves for reading (e.g. permissions,
8
+ * auth history).
9
+ */
10
+ export class BaseReadApi<TResponse, TQuery extends ListQuery<TResponse> = ListQuery<TResponse>>
11
+ extends BaseApi
12
+ implements HasGetMany<TResponse, TQuery>, HasGetById<TResponse>
13
+ {
14
+ public readonly basePath: string
15
+
16
+ constructor(client: ApiClient, basePath: string) {
17
+ super(client)
18
+ this.basePath = basePath.replace(/\/$/, '')
19
+ }
20
+
21
+ getMany(
22
+ query: TQuery & { paginate: false },
23
+ headers?: Record<string, string>,
24
+ ): Promise<TResponse[]>
25
+ getMany(
26
+ query?: TQuery & { paginate?: true },
27
+ headers?: Record<string, string>,
28
+ ): Promise<Paginated<TResponse>>
29
+ getMany(
30
+ query?: TQuery,
31
+ headers?: Record<string, string>,
32
+ ): Promise<Paginated<TResponse> | TResponse[]>
33
+ getMany(
34
+ query?: TQuery,
35
+ headers?: Record<string, string>,
36
+ ): Promise<Paginated<TResponse> | TResponse[]> {
37
+ const queryString = this.toQueryString(query)
38
+ return this.client.get<Paginated<TResponse> | TResponse[]>(
39
+ `${this.basePath}${queryString}`,
40
+ headers,
41
+ )
42
+ }
43
+
44
+ /**
45
+ * Returns the first resource matching the query, or `null` when none match.
46
+ * Convenience over `getMany` with `limit: 1`.
47
+ * @permissions $resourceName.view
48
+ */
49
+ async getOne(query?: TQuery, headers?: Record<string, string>): Promise<TResponse | null> {
50
+ const results = await this.getMany(
51
+ { ...query, limit: 1, paginate: false } as TQuery & { paginate: false },
52
+ headers,
53
+ )
54
+ // An empty response body resolves to `undefined`.
55
+ return results?.[0] ?? null
56
+ }
57
+
58
+ /**
59
+ * Returns a single resource by ID. When it does not exist most routes answer 200 with an empty
60
+ * body, which resolves to `undefined`.
61
+ * @permissions $resourceName.view
62
+ */
63
+ getById(
64
+ id: string,
65
+ query?: GetByIdQuery<TResponse>,
66
+ headers?: Record<string, string>,
67
+ ): Promise<TResponse> {
68
+ return this.client.get<TResponse>(`${this.basePath}/${id}${this.toQueryString(query)}`, headers)
69
+ }
70
+ }
package/src/core/index.ts CHANGED
@@ -20,6 +20,7 @@ export {
20
20
  } from './errors'
21
21
  export type { FieldError, ErrorClassName, ApiErrorOptions } from './errors'
22
22
  export { BaseApi } from './BaseApi'
23
+ export { BaseReadApi } from './BaseReadApi'
23
24
  export { BaseCrudApi } from './BaseCrudApi'
24
25
  export { ArchivableCrudApi } from './ArchivableCrudApi'
25
26
  export type { WhereClause, IncludeItem, ListQuery, GetByIdQuery, Paginated } from './types'