I have initialised two clients in appwrite one with .setSession() other with .setKey()
. If have to call the function for creating those clients and get something from it like databses, account, user, storage etc I have used these things in many places so i have to call the function in many places and the function will get triggered everytime the page loads but before i had the exports to databses , account, user, storage now will it consume more resources and cost more time , or is there something i can do ?
prev code
import env from '@/env';
import { Client, Storage, Databases, Users, Avatars } from 'node-appwrite';
let client = new Client();
client
.setEndpoint(env.appwrite.endpoint)
.setProject(env.appwrite.projectId)
.setKey(env.appwrite.apiKey);
;
const databases = new Databases(client);
const avatars = new Avatars(client);
const storage = new Storage(client);
const users = new Users(client);
export { client, databases, users, avatars, storage };
current code
import { SESSION_COOKIE } from '@/const';
import env from '@/env';
import { cookies } from 'next/headers';
import { Client, Storage, Databases, Users, Avatars, Account } from 'node-appwrite';
export async function createSessionClient() {
const client = new Client()
.setEndpoint(env.appwrite.endpoint)
.setProject(env.appwrite.projectId);
const session = cookies().get(SESSION_COOKIE);
if (!session || !session.value) {
throw new Error("No session found");
}
client.setSession(session.value);
return {
get account() {
return new Account(client);
},
get storage() {
return new Storage(client);
},
get databases() {
return new Databases(client);
},
get users() {
return new Users(client);
},
get avatars() {
return new Avatars(client);
},
};
}
export async function createAdminClient() {
const client = new Client()
.setEndpoint(env.appwrite.endpoint)
.setProject(env.appwrite.projectId)
.setKey(env.appwrite.apiKey);
return {
get account() {
return new Account(client);
},
get storage() {
return new Storage(client);
},
get databases() {
return new Databases(client);
},
get users() {
return new Users(client);
},
get avatars() {
return new Avatars(client);
},
};
}
export async function getLoggedInUser() {
try {
const { account } = await createSessionClient()
return await account.get();
} catch (err) {
return null;
}
}
Recommended threads
- Migration and Function glitch
I am trying to migrate from non pro appwrite project to pro appwrite project all my data but it's stuck in processing.
- Unable to signup to appwrite cloud
When attempting to create an online cloud account on appwrite.io, I get the following message : "This email address must already be in its canonical form. Pleas...
- Email address must be in its canonical f...
Hello, Recently I was trying to signup with my GitHub account with appwrite account for availing the student benifits but while trying to signup I saw such erro...