DalTag / frontend / composables / useProjectItem.ts
useProjectItem.ts
Raw
import { reactive, useContext } from '@nuxtjs/composition-api'
import { DaltagOptionsDTO, ProjectDTO } from '@/services/application/project/projectData'

export const useProjectItem = () => {
  const state = reactive({
    project: {} as ProjectDTO,
    daltagOptions: {} as DaltagOptionsDTO,
  })

  const { app } = useContext()
  const projectService = app.$services.project

  const getProjectById = async (projectId: string) => {
    state.project = await projectService.findById(projectId)
  }

  const getDaltagOptions = async () => {
    state.daltagOptions = await projectService.getDaltagOptions()
  }

  const saveDaltagOptions = async (projectId: string, aclStrategy:string, baseModel: string) => {
      const payload = {
          id: projectId,
          aclStrategy,
          baseModel
      }
      await projectService.saveDaltagConfig(projectId, payload)
  }

  const trainModel = async (projectId: string) => {
    await projectService.trainModel(projectId)
  }

  return {
    state,
    getProjectById,
    getDaltagOptions,
    saveDaltagOptions,
    trainModel
  }
}