feat(SPA): screens for Sites and Authors
This commit is contained in:
1 parent
b34a173d83
commit
3d81d2c717
82 files changed
+10676
-37
No files matched your search
@@ -0,0 +1,61 @@
|
||||
import { useApi } from '@/composables/useApi'
|
||||
import { jsonInit } from '@/lib/directoryRequest'
|
||||
import { reassignQuery } from '@/lib/directory'
|
||||
|
||||
export type SiteRobots = 'index' | 'noindex'
|
||||
|
||||
export interface Site {
|
||||
id: number
|
||||
name: string
|
||||
key: string
|
||||
base_url: string
|
||||
default_social_image_id: number | null
|
||||
default_robots: SiteRobots
|
||||
locale: string | null
|
||||
is_default: boolean
|
||||
article_count: number
|
||||
}
|
||||
|
||||
export interface NewSite {
|
||||
name: string
|
||||
key: string
|
||||
base_url: string
|
||||
default_robots: SiteRobots
|
||||
locale?: string
|
||||
default_social_image_id?: number
|
||||
is_default: boolean
|
||||
}
|
||||
|
||||
export interface SitePatch {
|
||||
name?: string
|
||||
base_url?: string
|
||||
default_robots?: SiteRobots
|
||||
locale?: string | null
|
||||
default_social_image_id?: number | null
|
||||
}
|
||||
|
||||
export function useSites() {
|
||||
const { request } = useApi()
|
||||
|
||||
function listSites(): Promise<Site[]> {
|
||||
return request<Site[]>('/v1/site/')
|
||||
}
|
||||
|
||||
function createSite(site: NewSite): Promise<Site> {
|
||||
return request<Site>('/v1/site/', jsonInit('POST', site))
|
||||
}
|
||||
|
||||
function updateSite(id: number, patch: SitePatch): Promise<Site> {
|
||||
return request<Site>(`/v1/site/${id}`, jsonInit('PATCH', patch))
|
||||
}
|
||||
|
||||
function setDefaultSite(id: number): Promise<Site> {
|
||||
return request<Site>(`/v1/site/${id}/default`, { method: 'PATCH' })
|
||||
}
|
||||
|
||||
function deleteSite(id: number, reassignTo?: number): Promise<void> {
|
||||
return request<void>(`/v1/site/${id}${reassignQuery(reassignTo)}`, { method: 'DELETE' })
|
||||
}
|
||||
|
||||
return { listSites, createSite, updateSite, setDefaultSite, deleteSite }
|
||||
}
|
||||
Reference in new issue
Block a user