feat: use api key for init tickets

This commit is contained in:
Torsten Dittmann
2024-02-20 14:47:09 +01:00
parent ebc5a9396e
commit 0a420c738e
7 changed files with 45 additions and 28 deletions

View File

@@ -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=

View 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)
};

View File

@@ -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)
};

View File

@@ -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()
});

View File

@@ -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

View File

@@ -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

View File

@@ -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,