call api for organization create/update/delete and switch

This commit is contained in:
Gregor Vostrak
2026-06-09 00:12:55 +02:00
committed by Constantin Graf
parent e8f632f330
commit 6c0041d249
8 changed files with 452 additions and 69 deletions

View File

@@ -803,6 +803,39 @@ const endpoints = makeApi([
z.object({ code: z.string(), name: z.string(), symbol: z.string() }).passthrough()
),
},
{
method: 'post',
path: '/v1/organizations',
alias: 'createOrganization',
requestFormat: 'json',
parameters: [
{
name: 'body',
type: 'Body',
schema: z.object({ name: z.string().max(255) }).passthrough(),
},
],
response: z.object({ data: OrganizationResource }).passthrough(),
errors: [
{
status: 401,
description: `Unauthenticated`,
schema: z.object({ message: z.string() }).passthrough(),
},
{
status: 403,
description: `Authorization error`,
schema: z.object({ message: z.string() }).passthrough(),
},
{
status: 422,
description: `Validation error`,
schema: z
.object({ message: z.string(), errors: z.record(z.array(z.string())) })
.passthrough(),
},
],
},
{
method: 'get',
path: '/v1/organizations/:organization',
@@ -877,6 +910,37 @@ const endpoints = makeApi([
},
],
},
{
method: 'delete',
path: '/v1/organizations/:organization',
alias: 'deleteOrganization',
requestFormat: 'json',
parameters: [
{
name: 'organization',
type: 'Path',
schema: z.string(),
},
],
response: z.void(),
errors: [
{
status: 401,
description: `Unauthenticated`,
schema: z.object({ message: z.string() }).passthrough(),
},
{
status: 403,
description: `Authorization error`,
schema: z.object({ message: z.string() }).passthrough(),
},
{
status: 404,
description: `Not found`,
schema: z.object({ message: z.string() }).passthrough(),
},
],
},
{
method: 'get',
path: '/v1/organizations/:organization/charts/daily-tracked-hours',
@@ -4495,6 +4559,42 @@ The report is considered public if the `is_public` field is set to &#x
},
],
},
{
method: 'put',
path: '/v1/users/me/current-organization',
alias: 'updateMyCurrentOrganization',
description: `Switches the organization that the user is currently working in. The user
must be a member of the given organization. This endpoint is independent of
the organization.`,
requestFormat: 'json',
parameters: [
{
name: 'body',
type: 'Body',
schema: z.object({ organization_id: z.string().uuid() }).passthrough(),
},
],
response: z.object({ data: UserResource }).passthrough(),
errors: [
{
status: 401,
description: `Unauthenticated`,
schema: z.object({ message: z.string() }).passthrough(),
},
{
status: 403,
description: `Authorization error`,
schema: z.object({ message: z.string() }).passthrough(),
},
{
status: 422,
description: `Validation error`,
schema: z
.object({ message: z.string(), errors: z.record(z.array(z.string())) })
.passthrough(),
},
],
},
{
method: 'put',
path: '/v1/users/:user',