import axios from "axios"; import { type LinkService, type LinkSearchParam, type LinkList, type LinkFormData, type LinkInfo, type LinkLogList, type LinkStatsList, type LinkVrblList, type LinkVrblFormData, type LinkVrbl, type LinkTable, type LinkTableColumnsList, type LinkTableColumns, type LinkTableColData, type LinkTableFormData, } from "../model/link-interface"; export class LinkApiService implements LinkService { public async getLinkList(params: LinkSearchParam): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/getLinkList`, { params } ); return response.data; } public async getLinkInfo(linkSn: string): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/getLinkInfo/${linkSn}`, ); return response.data; } public async linkQuickStart(linkSn: string): Promise { const response = await axios.patch( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/linkQuickStart/${linkSn}`, ); return response.data; } public async updateLinkInfo(data: LinkFormData): Promise { await axios.put( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/updateLinkInfo`, data, ); } public async insertLinkInfo(data: LinkFormData): Promise { await axios.post( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/insertLinkInfo`, data, ); } public async deleteLink(linkSn: string): Promise { await axios.delete( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/deleteLink/${linkSn}`, ); } public async getLinkLogList(params: LinkSearchParam): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/selectLinkLoglist`, { params } ); return response.data; } public async getLinkStatsList(params: LinkSearchParam): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/selectLinkStats`, { params } ); return response.data; } public async getLinkVrblList(linkSn: string): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/getLinkVrblList/${linkSn}`, ); return response.data; } public async insertLinkVrbl(data: LinkVrblFormData): Promise { const response = await axios.post( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/insertLinkVrbl`, data, ); return response.data; } public async deleteLinkVrbl(data: string[]): Promise { await axios.delete( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/deleteLinkVrbl`, { data } ); } public async getLinkVrblInfo(linkVrblSn: string): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/getLinkVrblInfo/${linkVrblSn}`, ); return response.data; } public async updateLinkVrblInfo(data: LinkVrblFormData): Promise { await axios.put( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/updateLinkVrblInfo`, data, ); } public async getLinkTableInfo(linkSn: string): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/getLinkTableInfo/${linkSn}`, ); return response.data; } public async getLinkTableColList(linkSn: string): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/getLinkTableColList/${linkSn}`, ); return response.data; } public async getLinkTableColInfo(params: { colSn: string; tblSn:string; }): Promise { const response = await axios.get( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/getLinkTableColInfo`, { params } ); return response.data; } public async insertLinkTableCol(data: LinkTableColData): Promise { await axios.post( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/insertLinkTableCol`, data ); } public async deleteLinkTableCol(data: string[]): Promise { await axios.delete( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/deleteLinkTableCol`, { data }, ); } public async updateLinkTableCol(data: LinkTableColData): Promise { axios.put( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/updateLinkTableCol`, data, ); } public async insertLinkTableInfo(data: LinkTableFormData): Promise { await axios.post( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/insertLinkTableInfo`, data ); } public async updateLinkTableInfo(data: LinkTableFormData): Promise { await axios.put( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/updateLinkTableInfo`, data ); } public async countLinkTblNm(tblNm: string): Promise<{count: number, tbl_sn: string}> { const response = await axios.get<{count: number, tbl_sn: string}>( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/countLinkTblNm/${tblNm}`, ); return response.data; } public async updateLinkResultCode(linkSn: string): Promise { await axios.patch( `${process.env.NEXT_PUBLIC_LINK_BACKEND_API_HOST}/updateLinkResultCode/${linkSn}`, ); } } export const LinkApi = new LinkApiService();