implement admin syste,

This commit is contained in:
2025-04-07 21:54:19 +02:00
parent 600f51ed1f
commit be05f2d895
16 changed files with 1701 additions and 99 deletions

View File

@@ -62,7 +62,8 @@ export interface paths {
path?: never;
cookie?: never;
};
get?: never;
/** Get a person by ID */
get: operations["getPersonById"];
put?: never;
post?: never;
/** Soft delete a person by ID */
@@ -171,6 +172,60 @@ export interface paths {
get: operations["getRelationship"];
put?: never;
post?: never;
/** Delete relationship between two persons */
delete: operations["deleteRelationship"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/admin/{id1}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get profile Admins */
get: operations["getProfileAdmins"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/admin/{id1}/{id2}": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get admin relationship between two persons */
get: operations["getAdminRelationship"];
put?: never;
/** Create admin relationship between two persons */
post: operations["createAdminRelationship"];
/** Delete admin relationship between two persons */
delete: operations["deleteAdminRelationship"];
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/managed_profiles": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get managed profiles */
get: operations["getManagedProfiles"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
@@ -235,10 +290,6 @@ export type webhooks = Record<string, never>;
export interface components {
schemas: {
PersonProperties: {
allow_admin_access?: {
id?: number;
name?: string;
}[] | null;
invite_code?: string | null;
google_id?: string | null;
first_name?: string | null;
@@ -385,6 +436,7 @@ export interface components {
born?: string;
/** Format: date */
died?: string | null;
profile_picture?: string | null;
};
FamilyTree: {
ancestors?: components["schemas"]["OptimizedPersonNode"][];
@@ -433,6 +485,15 @@ export interface components {
like_it?: boolean | null;
could_make_it?: boolean | null;
};
Admin: {
id?: number;
label?: string;
start?: string;
end?: string;
properties?: {
added?: number;
};
};
};
responses: never;
parameters: never;
@@ -490,6 +551,8 @@ export interface operations {
content: {
"application/json": {
person: components["schemas"]["PersonRegistration"];
/** @enum {string} */
type?: "child" | "parent" | "spouse" | "sibling";
relationship: components["schemas"]["FamilyRelationship"];
};
};
@@ -534,7 +597,10 @@ export interface operations {
createPerson: {
parameters: {
query?: never;
header?: never;
header: {
"X-User-ID": number;
"X-User-Name": string;
};
path?: never;
cookie?: never;
};
@@ -553,8 +619,43 @@ export interface operations {
"application/json": components["schemas"]["Person"];
};
};
/** @description Unauthorized */
401: {
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
getPersonById: {
parameters: {
query?: never;
header: {
"X-User-ID": number;
};
path: {
id: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Person retrieved */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Person"];
};
};
/** @description Bad request */
400: {
headers: {
[name: string]: unknown;
};
@@ -768,6 +869,17 @@ export interface operations {
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
createPersonByGoogleId: {
@@ -805,6 +917,17 @@ export interface operations {
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
createPersonByGoogleIdAndInviteCode: {
@@ -965,6 +1088,8 @@ export interface operations {
"application/json": {
id1?: string;
id2?: string;
/** @enum {string} */
type?: "child" | "parent" | "spouse" | "sibling";
relationship?: components["schemas"]["FamilyRelationship"];
};
};
@@ -1061,6 +1186,358 @@ export interface operations {
};
};
};
deleteRelationship: {
parameters: {
query?: never;
header: {
"X-User-ID": number;
};
path: {
id1: number;
id2: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Relationship deleted */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Bad request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
getProfileAdmins: {
parameters: {
query?: never;
header: {
"X-User-ID": number;
};
path: {
id1: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Admins retrieved */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
admins?: components["schemas"]["OptimizedPersonNode"][];
};
};
};
/** @description Bad request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
getAdminRelationship: {
parameters: {
query?: never;
header: {
"X-User-ID": number;
};
path: {
id1: number;
id2: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Admin retrieved */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Admin"];
};
};
/** @description Bad request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
createAdminRelationship: {
parameters: {
query?: never;
header: {
"X-User-ID": number;
};
path: {
id1: number;
id2: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Admin created */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["Admin"];
};
};
/** @description Bad request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
deleteAdminRelationship: {
parameters: {
query?: never;
header: {
"X-User-ID": number;
};
path: {
id1: number;
id2: number;
};
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Admin deleted */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Bad request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
getManagedProfiles: {
parameters: {
query?: never;
header: {
"X-User-ID": number;
};
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description Managed Profiles retrieved */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
admins?: components["schemas"]["OptimizedPersonNode"][];
};
};
};
/** @description Bad request */
400: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
/** @description Internal server error */
500: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": {
msg?: string;
};
};
};
};
};
softDeleteRecipe: {
parameters: {
query?: never;