task-managment / src / server / tool / application / tool-service-impl.ts
tool-service-impl.ts
Raw
import { UserId } from "@/server/user/domain/models";
import { DeleteTool, Tool, UserTool, UserToolQuery } from "../domain/models";
import { ToolRepository } from "../domain/repositories";
import { ToolService } from "./tool-service-definition";
import { defaultToolRepository } from "../infrastructure/repositories-impl";
import { DeleteUserToolDto } from "./dto";

class ToolServiceImpl implements ToolService{

    constructor(
        private toolRepository:ToolRepository
    ){}

    getAllTools(): Promise<Tool[]> {
        return this.toolRepository.getAll()
    }
    getUserTools(userId: UserId): Promise<UserToolQuery[]> {
        return this.toolRepository.getUserTools(userId)
    }
    createTool(data: Tool, userId: UserId): Promise<Tool> {
        return this.toolRepository.create(data,userId)
    }
    updateTools(data: Partial<Tool[]>, userId: UserId): Promise<Partial<Tool[]>> {
        return this.toolRepository.update(data,userId)
    }
    deleteTools(data: DeleteTool, userId: UserId): Promise<Tool[]> {
        return this.toolRepository.delete(data,userId)
    }
    assignUserToolsToUser(data: UserTool[]): Promise<UserTool[]> {
        return this.toolRepository.assignUserTools(data)
    }

    updateAssignUserTools(data: UserTool[]): Promise<UserTool[]> {
        return this.toolRepository.updateAssignUserTools(data)
    }

    deleteUserTools(data: DeleteUserToolDto[]): Promise<UserTool[]> {
        return this.toolRepository.deleteUserTools(data)
    }

    
}

export const defaultToolService = new ToolServiceImpl(defaultToolRepository)