* refactor customer api * refactor slots api * hooks/customers: use invalidateQueries * refactor services api * optimize hooks queryKey * refactor orders api * typo refactor hooks * fix telegramId type (number) * fix bot with new api * rename customers masters & clients query * fix useClientsQuery & useMastersQuery query * new line after 'use client' & 'use server' directives
15 lines
501 B
TypeScript
15 lines
501 B
TypeScript
import { authOptions } from '@/config/auth';
|
|
import { type BaseService } from '@repo/graphql/api/base';
|
|
import { getServerSession } from 'next-auth';
|
|
|
|
export function useService<T extends typeof BaseService>(service: T) {
|
|
return async function () {
|
|
const session = await getServerSession(authOptions);
|
|
if (!session?.user?.telegramId) throw new Error('Unauthorized');
|
|
|
|
const customer = { telegramId: session.user.telegramId };
|
|
|
|
return new service(customer) as InstanceType<T>;
|
|
};
|
|
}
|