📁 Changed TDrive root folder (#16)

📁 Changed TDrive root folder
This commit is contained in:
Montassar Ghanmy
2023-04-11 10:04:29 +01:00
committed by GitHub
parent 3b3f67af07
commit e0615fa867
10548 changed files with 48 additions and 48 deletions
@@ -0,0 +1,247 @@
import { webSocketSchema } from "../../../utils/types";
import { CompanyFeaturesEnum, CompanyLimitsEnum } from "./types";
export const userObjectSchema = {
type: "object",
properties: {
id: { type: "string" },
provider: { type: "string" },
provider_id: { type: "string" },
email: { type: "string" },
username: { type: "string" },
is_verified: { type: "boolean" },
picture: { type: "string" },
first_name: { type: "string" },
last_name: { type: "string" },
created_at: { type: "number" },
deleted: { type: "boolean" },
status: { type: "string" },
last_activity: { type: "number" },
// cache: { type: ["object", "null"] },
cache: {
type: "object",
properties: {
companies: { type: ["array", "null"] },
},
},
//Below is only if this is myself
preferences: {
type: "object",
properties: {
tutorial_done: { type: ["boolean", "null"] },
channel_ordering: { type: ["string", "null"] },
recent_workspaces: { type: ["array", "null"] },
knowledge_graph: { type: ["string", "null"] },
locale: { type: ["string", "null"] },
timezone: { type: ["number", "null"] },
language: { type: ["string", "null"] },
allow_tracking: { type: ["boolean", "null"] },
},
},
companies: {
type: "array",
items: {
type: "object",
properties: {
role: { type: "string", enum: ["owner", "admin", "member", "guest"] },
status: { type: "string", enum: ["owner", "deactivated", "invited"] },
company: {
type: "object",
properties: {
id: { type: "string" },
name: { type: "string" },
logo: { type: "string" },
},
},
},
},
},
// TODO this is temporary, should be deleted
preference: {},
},
};
export const companyObjectSchema = {
type: "object",
properties: {
id: { type: "string" },
name: { type: "string" },
logo: { type: "string" },
plan: {
type: ["object", "null"],
properties: {
name: { type: "string" },
limits: {
type: ["object", "null"],
properties: {
[CompanyLimitsEnum.CHAT_MESSAGE_HISTORY_LIMIT]: { type: "number" },
[CompanyLimitsEnum.COMPANY_MEMBERS_LIMIT]: { type: "number" },
[CompanyLimitsEnum.COMPANY_GUESTS_LIMIT]: { type: "number" },
},
},
features: {
type: "object",
properties: {
[CompanyFeaturesEnum.CHAT_EDIT_FILES]: { type: ["boolean"] },
[CompanyFeaturesEnum.CHAT_GUESTS]: { type: ["boolean"] },
[CompanyFeaturesEnum.CHAT_MESSAGE_HISTORY]: { type: "boolean" },
[CompanyFeaturesEnum.CHAT_MULTIPLE_WORKSPACES]: { type: "boolean" },
[CompanyFeaturesEnum.CHAT_UNLIMITED_STORAGE]: { type: "boolean" },
[CompanyFeaturesEnum.COMPANY_INVITE_MEMBER]: { type: "boolean" },
guests: { type: "number" }, // to rename or delete
members: { type: "number" }, // to rename or delete
storage: { type: "number" }, // to rename or delete
},
required: [] as string[],
},
},
},
stats: {
type: ["object", "null"],
properties: {
created_at: { type: "number" },
total_members: { type: "number" },
total_guests: { type: "number" },
total_messages: { type: "number" },
},
},
identity_provider_id: { type: "string" },
identity_provider: { type: "string" },
role: { type: "string", enum: ["owner", "admin", "member", "guest"] },
status: { type: "string", enum: ["owner", "deactivated", "invited"] },
},
};
export const getUserSchema = {
response: {
"2xx": {
type: "object",
properties: {
resource: userObjectSchema,
websocket: webSocketSchema,
},
required: ["resource"],
},
},
};
export const setUserPreferencesSchema = {
request: {
properties: {
tutorial_done: { type: ["boolean", "null"] },
channel_ordering: { type: ["string", "null"] },
recent_workspaces: { type: ["array", "null"] },
knowledge_graph: { type: ["string", "null"] },
locale: { type: ["string", "null"] },
timezone: { type: ["number", "null"] },
language: { type: ["string", "null"] },
allow_tracking: { type: ["boolean", "null"] },
},
required: [] as any[],
},
response: {
"2xx": userObjectSchema.properties.preferences,
},
};
export const getUsersSchema = {
type: "object",
properties: {
user_ids: { type: "string" },
include_companies: { type: "boolean" },
},
response: {
"2xx": {
type: "object",
properties: {
resources: { type: "array", items: userObjectSchema },
},
required: ["resources"],
},
},
};
//Not used because it causes issues with the features json object
export const getUserCompaniesSchema = {
type: "object",
response: {
"2xx": {
type: "object",
properties: {
resources: { type: "array", items: companyObjectSchema },
},
required: ["resources"],
},
},
};
//Not used because it causes issues with the features json object
export const getCompanySchema = {
type: "object",
response: {
"2xx": {
type: "object",
properties: {
resource: companyObjectSchema,
websocket: webSocketSchema,
},
required: ["resource"],
},
},
};
const deviceSchema = {
type: "object",
properties: {
type: { type: "string" },
value: { type: "string" },
version: { type: "string" },
},
required: ["type", "value", "version"],
};
export const postDevicesSchema = {
type: "object",
body: {
type: "object",
properties: {
resource: deviceSchema,
},
},
required: ["resource"],
response: {
"2xx": {
type: "object",
properties: {
resource: deviceSchema,
},
required: ["resource"],
},
},
};
export const getDevicesSchema = {
response: {
"2xx": {
type: "object",
properties: {
resources: { type: "array", items: deviceSchema },
},
},
},
};
export const deleteDeviceSchema = {
response: {
"2xx": {
type: "object",
properties: {
success: { type: "boolean" },
},
},
},
};