mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-06 04:22:07 +00:00
feat: use api key for init tickets
This commit is contained in:
14
.env.example
14
.env.example
@@ -1,6 +1,10 @@
|
||||
PUBLIC_APPWRITE_PROJECT_INIT_ID=
|
||||
PUBLIC_APPWRITE_PROJECT_ID=
|
||||
PUBLIC_APPWRITE_DB_MAIN_ID=
|
||||
PUBLIC_APPWRITE_COL_THREADS_ID=
|
||||
PUBLIC_APPWRITE_COL_MESSAGES_ID=
|
||||
PUBLIC_APPWRITE_FN_TLDR_ID=
|
||||
PUBLIC_APPWRITE_COL_THREADS_ID=
|
||||
PUBLIC_APPWRITE_DB_MAIN_ID=
|
||||
PUBLIC_APPWRITE_FN_TLDR_ID=
|
||||
PUBLIC_APPWRITE_ENDPOINT=
|
||||
PUBLIC_APPWRITE_PROJECT_ID=
|
||||
PUBLIC_APPWRITE_PROJECT_INIT_ID=
|
||||
APPWRITE_DB_INIT_ID=
|
||||
APPWRITE_COL_INIT_ID=
|
||||
APPWRITE_API_KEY_INIT=
|
||||
|
||||
13
src/lib/appwrite/init.server.ts
Normal file
13
src/lib/appwrite/init.server.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { APPWRITE_API_KEY_INIT } from '$env/static/private';
|
||||
import { PUBLIC_APPWRITE_PROJECT_INIT_ID } from '$env/static/public';
|
||||
import { Client, Databases } from '@appwrite.io/console';
|
||||
|
||||
const clientServer = new Client();
|
||||
clientServer
|
||||
.setEndpoint('https://cloud.appwrite.io/v1')
|
||||
.setProject(PUBLIC_APPWRITE_PROJECT_INIT_ID)
|
||||
.setKey(APPWRITE_API_KEY_INIT);
|
||||
|
||||
export const appwriteInitServer = {
|
||||
databases: new Databases(clientServer)
|
||||
};
|
||||
@@ -1,12 +1,12 @@
|
||||
import { PUBLIC_APPWRITE_PROJECT_INIT_ID } from '$env/static/public';
|
||||
import { Client, Account, Databases } from '@appwrite.io/console';
|
||||
import { Client, Account } from '@appwrite.io/console';
|
||||
|
||||
const client = new Client();
|
||||
|
||||
client.setEndpoint('https://cloud.appwrite.io/v1').setProject(PUBLIC_APPWRITE_PROJECT_INIT_ID);
|
||||
client
|
||||
.setEndpoint('https://cloud.appwrite.io/v1')
|
||||
.setProject(PUBLIC_APPWRITE_PROJECT_INIT_ID);
|
||||
|
||||
export const appwriteInit = {
|
||||
client,
|
||||
account: new Account(client),
|
||||
database: new Databases(client)
|
||||
account: new Account(client)
|
||||
};
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID } from '$env/static/private';
|
||||
import { appwriteInit } from '$lib/appwrite/init';
|
||||
import { appwriteInitServer } from '$lib/appwrite/init.server';
|
||||
import parse from 'node-html-parser';
|
||||
import type { TicketData, ContributionsMatrix } from '../../constants';
|
||||
|
||||
export async function getContributions(id: string): Promise<ContributionsMatrix | null> {
|
||||
const { gh_user, contributions } = (await appwriteInit.database.getDocument(
|
||||
const { gh_user, contributions } = (await appwriteInitServer.databases.getDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
id
|
||||
@@ -48,7 +48,7 @@ export async function getContributions(id: string): Promise<ContributionsMatrix
|
||||
}
|
||||
|
||||
// Update the document with the new contributions
|
||||
await appwriteInit.database.updateDocument(APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID, id, {
|
||||
await appwriteInitServer.databases.updateDocument(APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID, id, {
|
||||
contributions: matrix.flat()
|
||||
});
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { APPWRITE_COL_INIT_ID, APPWRITE_DB_INIT_ID } from '$env/static/private';
|
||||
import { appwriteInit } from '$lib/appwrite/init.js';
|
||||
import { getTicketVariant } from '$routes/init/helpers.js';
|
||||
import { appwriteInitServer } from '$lib/appwrite/init.server';
|
||||
import { getTicketVariant } from '$routes/init/helpers';
|
||||
import sharp from 'sharp';
|
||||
import type { TicketData } from '../../constants.js';
|
||||
import { getTicketSvg } from './getTicketSvg.server.js';
|
||||
|
||||
export async function GET({ params, fetch }) {
|
||||
const ticket = (await appwriteInit.database.getDocument(
|
||||
const ticket = (await appwriteInitServer.databases.getDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
params.id
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { APPWRITE_COL_INIT_ID, APPWRITE_DB_INIT_ID } from '$env/static/private';
|
||||
import { appwriteInit } from '$lib/appwrite/init.js';
|
||||
import { appwriteInitServer } from '$lib/appwrite/init.server';
|
||||
import { isProUser } from '$lib/utils/console.js';
|
||||
import type { User } from '$routes/init/helpers.js';
|
||||
import { ID, Query } from '@appwrite.io/console';
|
||||
@@ -33,12 +33,12 @@ async function getTicketDocByUser(user: User) {
|
||||
|
||||
const [gh, aw, isPro] = await Promise.all([
|
||||
user.github?.login
|
||||
? appwriteInit.database.listDocuments(APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID, [
|
||||
? appwriteInitServer.databases.listDocuments(APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID, [
|
||||
Query.equal('gh_user', user.github.login)
|
||||
])
|
||||
: null,
|
||||
user.appwrite?.$id
|
||||
? appwriteInit.database.listDocuments(APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID, [
|
||||
? appwriteInitServer.databases.listDocuments(APPWRITE_DB_INIT_ID, APPWRITE_COL_INIT_ID, [
|
||||
Query.equal('aw_email', user.appwrite.email)
|
||||
])
|
||||
: null,
|
||||
@@ -53,7 +53,7 @@ async function getTicketDocByUser(user: User) {
|
||||
if (gh_doc && aw_doc && gh_doc.$id !== aw_doc.$id) {
|
||||
const oldest = gh_doc.id < aw_doc.id ? gh_doc.$id : aw_doc.$id;
|
||||
const newest = gh_doc.id > aw_doc.id ? gh_doc.$id : aw_doc.$id;
|
||||
await appwriteInit.database.updateDocument(
|
||||
await appwriteInitServer.databases.updateDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
oldest,
|
||||
@@ -62,7 +62,7 @@ async function getTicketDocByUser(user: User) {
|
||||
aw_email: null
|
||||
}
|
||||
);
|
||||
return (await appwriteInit.database.updateDocument(
|
||||
return (await appwriteInitServer.databases.updateDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
newest,
|
||||
@@ -77,7 +77,7 @@ async function getTicketDocByUser(user: User) {
|
||||
|
||||
// If the document is missing either the GitHub or Appwrite user, update it
|
||||
if (!doc.gh_user || !doc.aw_email) {
|
||||
return (await appwriteInit.database.updateDocument(
|
||||
return (await appwriteInitServer.databases.updateDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
doc.$id,
|
||||
@@ -90,7 +90,7 @@ async function getTicketDocByUser(user: User) {
|
||||
|
||||
// If the user's pro status has changed, update the document
|
||||
if (!!user.appwrite && doc.is_pro !== isPro) {
|
||||
return (await appwriteInit.database.updateDocument(
|
||||
return (await appwriteInitServer.databases.updateDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
doc.$id,
|
||||
@@ -104,11 +104,11 @@ async function getTicketDocByUser(user: User) {
|
||||
return doc;
|
||||
} else {
|
||||
// If no document exists, create one
|
||||
const allDocs = await appwriteInit.database.listDocuments(
|
||||
const allDocs = await appwriteInitServer.databases.listDocuments(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID
|
||||
);
|
||||
return (await appwriteInit.database.createDocument(
|
||||
return (await appwriteInitServer.databases.createDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
ID.unique(),
|
||||
@@ -124,7 +124,7 @@ async function getTicketDocByUser(user: User) {
|
||||
}
|
||||
|
||||
async function getTicketDocById(id: string) {
|
||||
return (await appwriteInit.database.getDocument(
|
||||
return (await appwriteInitServer.databases.getDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
id
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { APPWRITE_COL_INIT_ID, APPWRITE_DB_INIT_ID } from '$env/static/private';
|
||||
import { appwriteInit } from '$lib/appwrite/init.js';
|
||||
import { appwriteInitServer } from '$lib/appwrite/init.server';
|
||||
|
||||
export async function POST({ request }) {
|
||||
const data = await request.json()
|
||||
|
||||
await appwriteInit.database.updateDocument(
|
||||
await appwriteInitServer.databases.updateDocument(
|
||||
APPWRITE_DB_INIT_ID,
|
||||
APPWRITE_COL_INIT_ID,
|
||||
data.ticketId,
|
||||
|
||||
Reference in New Issue
Block a user