import axios from '@/utils/axios'; import { PIPELINE_PREFIX, DEPLOYMENT_PREFIX, STAGE_PREFIX } from './prefix'; interface PipelinePayload { projectId: number; pipelineId: number; } type CreatePipelinePayload = PipelinePayload & { name: string; templateName: string; } type UpdatePipelinePayload = PipelinePayload & { configJson: string; } // PIPELINE API export const deletePipeline = (pipeline: PipelinePayload) => axios.delete(`${PIPELINE_PREFIX}`, { params: pipeline, }); export const getPipeline = (pipeline: PipelinePayload) => axios.get(`${PIPELINE_PREFIX}`, { params: pipeline, }); export const createPipeline = (createPipelinePayload: CreatePipelinePayload) => axios.post(`${PIPELINE_PREFIX}`, createPipelinePayload); export const updatePipeline = (updatePipelinePayload: UpdatePipelinePayload) => axios.put(`${PIPELINE_PREFIX}/config`, updatePipelinePayload); export const getPipelineTemplates = () => axios.get(`${PIPELINE_PREFIX}/templates`); export const getPipelineRecord = (recordId: number) => axios.get(`${PIPELINE_PREFIX}/record`, { params: { recordId, }, }); export const getPipelineRecordDetail = (recordId: number) => axios.get(`${PIPELINE_PREFIX}/record/details`, { params: { recordId, }, }); export const getPipelineRecordList = (pipeline: PipelinePayload) => axios.get(`${PIPELINE_PREFIX}/record/list`, { params: pipeline, }); export const getPipelinesByProjectId = (projectId: number) => axios.get(`${PIPELINE_PREFIX}/list`, { params: { projectId, }, }); // DEPLOYMENT API export const deleteInstance = (deploymentId: number) => axios.delete(`${DEPLOYMENT_PREFIX}`, { params: { deploymentId, }, }); export const triggerDeployment = (pipeline: PipelinePayload) => axios.post(`${DEPLOYMENT_PREFIX}`, { params: pipeline, }); export const getDeploymentsByProjectId = (projectId: number) => axios.get(`${DEPLOYMENT_PREFIX}/list`, { params: { projectId, }, }); // STAGE API export const getStages = () => axios.get(`${STAGE_PREFIX}`);