aboutsummaryrefslogtreecommitdiffstats
path: root/code/frontend/src/services/abstractions/IApiTokenService.ts
diff options
context:
space:
mode:
Diffstat (limited to 'code/frontend/src/services/abstractions/IApiTokenService.ts')
-rw-r--r--code/frontend/src/services/abstractions/IApiTokenService.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/code/frontend/src/services/abstractions/IApiTokenService.ts b/code/frontend/src/services/abstractions/IApiTokenService.ts
new file mode 100644
index 0000000..fdf82eb
--- /dev/null
+++ b/code/frontend/src/services/abstractions/IApiTokenService.ts
@@ -0,0 +1,34 @@
+import type { Temporal } from "temporal-polyfill"
+
+export interface IApiTokenService {
+ create_token_async(payload: CreateTokenPayload): Promise<CreateTokenResponse>,
+ delete_token_async(payload: DeleteTokenPayload): Promise<DeleteTokenResponse>,
+ get_tokens_async(query: TokenQuery): Promise<GetTokensResponse>
+}
+export type GetTokensResponse = {
+ results: Array<GetTokensTokenModel>
+};
+export type GetTokensTokenModel = {
+ id: string,
+ name: string,
+ permissions: string[]
+}
+export type TokenQuery = {
+ includeStale: boolean
+};
+export type DeleteTokenResponse = {
+ isDeleted: boolean
+};
+export type DeleteTokenPayload = {
+ id: string
+};
+export type CreateTokenResponse = {
+ isCreated: boolean
+};
+export type CreateTokenPayload = {
+ expiryDate: Temporal.PlainDateTime,
+ allowRead: boolean,
+ allowCreate: boolean,
+ allowUpdate: boolean,
+ allowDelete: boolean
+}; \ No newline at end of file