Compare commits
2 commits
590e7d8265
...
c4251d9f51
Author | SHA1 | Date | |
---|---|---|---|
c4251d9f51 | |||
1974152b48 |
7 changed files with 216 additions and 54 deletions
|
@ -10,7 +10,7 @@
|
|||
"version": "0.0.0"
|
||||
},
|
||||
"paths": {
|
||||
"/api/config/boot": {
|
||||
"/api/boot/config": {
|
||||
"get": {
|
||||
"tags": ["Guild configs"],
|
||||
"summary": "Find a guild's config by ID",
|
||||
|
@ -41,7 +41,7 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"/api/config/{guildId}": {
|
||||
"/api/{guildId}/config": {
|
||||
"get": {
|
||||
"tags": ["Guild configs"],
|
||||
"summary": "Find a guild's config by ID",
|
||||
|
@ -118,7 +118,7 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"/api/tp_messages/{guildId}": {
|
||||
"/api/{guildId}/tp_messages": {
|
||||
"get": {
|
||||
"tags": ["Time planning messages"],
|
||||
"summary": "Find the tp_messages of guild by ID",
|
||||
|
@ -208,7 +208,56 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"/api/match/{guildId}/{channelId}": {
|
||||
"/api/{guildId}/matches": {
|
||||
"get": {
|
||||
"tags": ["Matches"],
|
||||
"summary": "Find all matches of guild by ID",
|
||||
"description": "Returns tp_messages for a guild",
|
||||
"operationId": "getMatchesOfGuildById",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "guildId",
|
||||
"in": "path",
|
||||
"description": "ID of guild's tp_messages to return",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"format": "varchar(20)"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "successful operation",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/tp_messages"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"204": {
|
||||
"description": "Time planning not enabled for this guild"
|
||||
},
|
||||
"400": {
|
||||
"description": "Invalid ID supplied"
|
||||
},
|
||||
"404": {
|
||||
"description": "Guild not found"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"api_key": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/{guildId}/matches/{channelId}": {
|
||||
"post": {
|
||||
"tags": ["Matches"],
|
||||
"summary": "Save a new created match in channel of guild by IDs",
|
||||
|
@ -264,7 +313,7 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"/api/match/{guildId}/{channelId}/{matchMessageId}": {
|
||||
"/api/{guildId}/matches/{channelId}/{matchMessageId}": {
|
||||
"put": {
|
||||
"tags": ["Matches"],
|
||||
"summary": "Set state for match of guild by IDs",
|
||||
|
@ -329,55 +378,6 @@
|
|||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/match/{guildId}": {
|
||||
"get": {
|
||||
"tags": ["Matches"],
|
||||
"summary": "Find all matches of guild by ID",
|
||||
"description": "Returns tp_messages for a guild",
|
||||
"operationId": "getMatchesOfGuildById",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "guildId",
|
||||
"in": "path",
|
||||
"description": "ID of guild's tp_messages to return",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string",
|
||||
"format": "varchar(20)"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "successful operation",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/tp_messages"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"204": {
|
||||
"description": "Time planning not enabled for this guild"
|
||||
},
|
||||
"400": {
|
||||
"description": "Invalid ID supplied"
|
||||
},
|
||||
"404": {
|
||||
"description": "Guild not found"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"api_key": []
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
|
|
48
src/routes/api/[guildId]/config.ts
Normal file
48
src/routes/api/[guildId]/config.ts
Normal file
|
@ -0,0 +1,48 @@
|
|||
import { APIEvent } from "@solidjs/start/server/types";
|
||||
import { eq } from "drizzle-orm";
|
||||
import db from "~/drizzle";
|
||||
import { guilds } from "~/drizzle/schema";
|
||||
|
||||
export const GET = async ({ params }: APIEvent) => {
|
||||
const guild = await db.query.guilds
|
||||
.findFirst({
|
||||
where: eq(guilds.id, params.guildId),
|
||||
with: {
|
||||
timePlanning: { with: { messages: true } },
|
||||
matches: true,
|
||||
},
|
||||
})
|
||||
.execute();
|
||||
|
||||
if (!guild)
|
||||
return new Response(JSON.stringify({ error: "No such guild found." }), {
|
||||
status: 404,
|
||||
});
|
||||
|
||||
return guild;
|
||||
};
|
||||
|
||||
export const DELETE = async ({ params }: APIEvent) => {
|
||||
const guildQuery = await db.query.guilds
|
||||
.findFirst({
|
||||
where: eq(guilds.id, params.guildId),
|
||||
with: {
|
||||
timePlanning: { with: { messages: true } },
|
||||
matches: true,
|
||||
},
|
||||
})
|
||||
.execute();
|
||||
|
||||
if (!guildQuery)
|
||||
return new Response(JSON.stringify({ error: "No such guild found." }), {
|
||||
status: 404,
|
||||
});
|
||||
|
||||
const guild = await db
|
||||
.delete(guilds)
|
||||
.where(eq(guilds.id, params.guildId))
|
||||
.returning()
|
||||
.execute();
|
||||
|
||||
return guild;
|
||||
};
|
|
@ -0,0 +1,24 @@
|
|||
import { APIEvent } from "@solidjs/start/server/types";
|
||||
import { eq } from "drizzle-orm";
|
||||
import db from "~/drizzle";
|
||||
import { guilds } from "~/drizzle/schema";
|
||||
|
||||
export const PUT = async ({ params }: APIEvent) => {
|
||||
const guild = await db.query.guilds
|
||||
.findFirst({
|
||||
where: eq(guilds.id, params.guildId),
|
||||
with: {
|
||||
timePlanning: { with: { messages: true } },
|
||||
matches: true,
|
||||
},
|
||||
})
|
||||
.execute();
|
||||
|
||||
if (!guild)
|
||||
return new Response(JSON.stringify({ error: "No such guild found." }), {
|
||||
status: 404,
|
||||
});
|
||||
|
||||
return "TODO";
|
||||
// return guild.timePlanning;
|
||||
};
|
24
src/routes/api/[guildId]/matches/[channelId]/index.ts
Normal file
24
src/routes/api/[guildId]/matches/[channelId]/index.ts
Normal file
|
@ -0,0 +1,24 @@
|
|||
import { APIEvent } from "@solidjs/start/server/types";
|
||||
import { eq } from "drizzle-orm";
|
||||
import db from "~/drizzle";
|
||||
import { guilds } from "~/drizzle/schema";
|
||||
|
||||
export const POST = async ({ params }: APIEvent) => {
|
||||
const guild = await db.query.guilds
|
||||
.findFirst({
|
||||
where: eq(guilds.id, params.guildId),
|
||||
with: {
|
||||
timePlanning: { with: { messages: true } },
|
||||
matches: true,
|
||||
},
|
||||
})
|
||||
.execute();
|
||||
|
||||
if (!guild)
|
||||
return new Response(JSON.stringify({ error: "No such guild found." }), {
|
||||
status: 404,
|
||||
});
|
||||
|
||||
return "TODO";
|
||||
// return guild.timePlanning;
|
||||
};
|
24
src/routes/api/[guildId]/matches/index.ts
Normal file
24
src/routes/api/[guildId]/matches/index.ts
Normal file
|
@ -0,0 +1,24 @@
|
|||
import { APIEvent } from "@solidjs/start/server/types";
|
||||
import { eq } from "drizzle-orm";
|
||||
import db from "~/drizzle";
|
||||
import { guilds } from "~/drizzle/schema";
|
||||
|
||||
export const GET = async ({ params }: APIEvent) => {
|
||||
const guild = await db.query.guilds
|
||||
.findFirst({
|
||||
where: eq(guilds.id, params.guildId),
|
||||
with: {
|
||||
timePlanning: { with: { messages: true } },
|
||||
matches: true,
|
||||
},
|
||||
})
|
||||
.execute();
|
||||
|
||||
if (!guild)
|
||||
return new Response(JSON.stringify({ error: "No such guild found." }), {
|
||||
status: 404,
|
||||
});
|
||||
|
||||
return "TODO";
|
||||
// return guild.timePlanning;
|
||||
};
|
28
src/routes/api/[guildId]/tp_messages.ts
Normal file
28
src/routes/api/[guildId]/tp_messages.ts
Normal file
|
@ -0,0 +1,28 @@
|
|||
import { APIEvent } from "@solidjs/start/server/types";
|
||||
import { eq } from "drizzle-orm";
|
||||
import db from "~/drizzle";
|
||||
import { guilds } from "~/drizzle/schema";
|
||||
|
||||
export const GET = async ({ params }: APIEvent) => {
|
||||
const guild = await db.query.guilds
|
||||
.findFirst({
|
||||
where: eq(guilds.id, params.guildId),
|
||||
with: {
|
||||
timePlanning: { with: { messages: true } },
|
||||
matches: true,
|
||||
},
|
||||
})
|
||||
.execute();
|
||||
|
||||
if (!guild)
|
||||
return new Response(JSON.stringify({ error: "No such guild found." }), {
|
||||
status: 404,
|
||||
});
|
||||
|
||||
return "TODO";
|
||||
// return guild.timePlanning;
|
||||
};
|
||||
|
||||
export const PUT = async () => {
|
||||
return "TODO";
|
||||
};
|
14
src/routes/api/boot/config.ts
Normal file
14
src/routes/api/boot/config.ts
Normal file
|
@ -0,0 +1,14 @@
|
|||
import db from "~/drizzle";
|
||||
|
||||
export const GET = async () => {
|
||||
const guilds = await db.query.guilds
|
||||
.findMany({
|
||||
with: {
|
||||
timePlanning: { with: { messages: true } },
|
||||
matches: true,
|
||||
},
|
||||
})
|
||||
.execute();
|
||||
|
||||
return { guilds };
|
||||
};
|
Loading…
Reference in a new issue