feat: add tag API and integrate tag selection in modifications page
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
export * as FirearmApi from "./firearm-api"
|
||||
export * as ModificationApi from "./modification-api"
|
||||
export * as TagApi from "./tag-api"
|
||||
|
||||
@@ -4,17 +4,25 @@ import { asUrlSearchParam } from "@/utils/query-param-utils.ts"
|
||||
|
||||
interface ModificationParams extends PageQueryParams {
|
||||
firearmId?: string
|
||||
tags?: string[]
|
||||
}
|
||||
|
||||
export async function getModifications(params?: ModificationParams): Promise<Page<Modification>> {
|
||||
let uri = "/modifications"
|
||||
const urlSearchParams = asUrlSearchParam(params)
|
||||
|
||||
if (params?.firearmId) {
|
||||
urlSearchParams.append("firearmId", "" + params.firearmId)
|
||||
}
|
||||
|
||||
if (params?.tags) {
|
||||
params.tags.forEach((tag) => urlSearchParams.append("tags", tag))
|
||||
}
|
||||
|
||||
if (urlSearchParams.size > 0) {
|
||||
uri = uri.concat("?", urlSearchParams.toString())
|
||||
}
|
||||
|
||||
const { data } = await WebClient.get<Page<Modification>>(uri)
|
||||
return data
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
import { WebClient } from "@/shared/web-client"
|
||||
|
||||
export async function getTags(firearmId?: number): Promise<string[]> {
|
||||
let uri = "/tags"
|
||||
|
||||
const urlSearchParam = new URLSearchParams()
|
||||
|
||||
if (firearmId) {
|
||||
urlSearchParam.append("firearmId", "" + firearmId)
|
||||
}
|
||||
|
||||
if (urlSearchParam.size > 0) {
|
||||
uri = uri.concat("?", urlSearchParam.toString())
|
||||
}
|
||||
|
||||
const { data } = await WebClient.get<string[]>(uri)
|
||||
return data
|
||||
}
|
||||
Reference in New Issue
Block a user