import { createReadStream } from "fs";
import { ApiError } from "../../middleware/ApiError";
import CloudeFormdata from 'form-data'
import axios from "axios";
import { prisma } from "../../utils/prisma";


export class CloudeCacheService {

    private readonly clerk_secret_key: string
    private readonly clerk_domain: string = 'https://api.clerk.dev/v1/'

    constructor() {
        this.clerk_secret_key = process.env.CLERK_SECRET_KEY as string
    }


    // force clear cloud cache

    async getUserById(clerkId: string) {

        const response = await prisma.user.findUnique({
            where: {
                clerkId
            },
        })

        return response

    }

    async getUserPermissionById(clerkId: string) {

        const response = await prisma.user.findUnique({
            where: {
                clerkId
            },
            include: {
                Permission: true
            }
        })


        
        return response

    }



    async getAllUserService() {
        const response = await axios.get(this.clerk_domain + "users", {
            headers: {
                Authorization: `Bearer ${this.clerk_secret_key}`
            }
        });
        return response.data
    }



    async deleteUserService(id: string) {

        const response = await axios.delete(`${this.clerk_domain}users/${id}`, {
            headers: {
                Authorization: `Bearer ${this.clerk_secret_key}`
            }
        })
        return response.data
    }






}

export default new CloudeCacheService();