Add aspect-ratio crop presets for portfolio title images, fixed card image placeholders with contained centering, Meshkee favicon/logo fallbacks, login branding updates, category FAB alignment, and super-admin website/domain SSL tooling. Co-authored-by: Cursor <cursoragent@cursor.com>
63 lines
1.7 KiB
TypeScript
63 lines
1.7 KiB
TypeScript
import { apiRequest } from '../lib/api'
|
|
import type { DeployDomainResponse, DomainsListResponse } from '../types/domain'
|
|
|
|
export interface ListDomainsParams {
|
|
page?: number
|
|
pageSize?: number
|
|
name?: string
|
|
}
|
|
|
|
export interface UpdateDomainPayload {
|
|
host?: string
|
|
expiresAt?: string
|
|
}
|
|
|
|
export async function listDomains(params: ListDomainsParams, signal?: AbortSignal) {
|
|
const q = new URLSearchParams()
|
|
if (params.page !== undefined) q.set('page', String(params.page))
|
|
if (params.pageSize !== undefined) q.set('pageSize', String(params.pageSize))
|
|
if (params.name) q.set('name', params.name)
|
|
|
|
const query = q.toString()
|
|
const path = `/domains${query ? `?${query}` : ''}`
|
|
return apiRequest<DomainsListResponse>(path, { auth: true, signal })
|
|
}
|
|
|
|
export async function updateDomain(domainId: number | string, payload: UpdateDomainPayload) {
|
|
return apiRequest(`/domains/${domainId}`, {
|
|
method: 'PATCH',
|
|
auth: true,
|
|
body: payload,
|
|
})
|
|
}
|
|
|
|
export async function setDomainActive(domainId: number | string, isActive: boolean) {
|
|
return apiRequest(`/domains/${domainId}/disable`, {
|
|
method: 'PATCH',
|
|
auth: true,
|
|
body: { isActive },
|
|
})
|
|
}
|
|
|
|
export async function setDomainSsl(domainId: number | string, sslEnabled: boolean) {
|
|
return apiRequest(`/domains/${domainId}/ssl`, {
|
|
method: 'PATCH',
|
|
auth: true,
|
|
body: { sslEnabled },
|
|
})
|
|
}
|
|
|
|
export async function removeDomain(domainId: number | string) {
|
|
return apiRequest(`/domains/${domainId}`, {
|
|
method: 'DELETE',
|
|
auth: true,
|
|
})
|
|
}
|
|
|
|
export async function deployDomain(domainId: number | string) {
|
|
return apiRequest<DeployDomainResponse>(`/domains/${domainId}/deploy`, {
|
|
method: 'POST',
|
|
auth: true,
|
|
})
|
|
}
|