Refactor acme.sh dns providers
- updated chakra and typescript - added locales for dns provider configs
This commit is contained in:
@@ -28,21 +28,22 @@ function buildBody(data?: Record<string, any>) {
|
||||
}
|
||||
}
|
||||
|
||||
async function processResponse(response: Response) {
|
||||
async function processResponse(response: Response, skipCamelize = false) {
|
||||
const payload = await response.json();
|
||||
if (!response.ok) {
|
||||
throw new Error(payload.error.message);
|
||||
}
|
||||
return camelizeKeys(payload) as any;
|
||||
return (skipCamelize ? payload : camelizeKeys(payload)) as any;
|
||||
}
|
||||
|
||||
interface GetArgs {
|
||||
url: string;
|
||||
params?: queryString.StringifiableRecord;
|
||||
skipCamelize?: boolean;
|
||||
}
|
||||
|
||||
export async function get(
|
||||
{ url, params }: GetArgs,
|
||||
{ url, params, skipCamelize }: GetArgs,
|
||||
abortController?: AbortController,
|
||||
) {
|
||||
const apiUrl = buildUrl({ url, params });
|
||||
@@ -50,7 +51,7 @@ export async function get(
|
||||
const signal = abortController?.signal;
|
||||
const headers = buildAuthHeader();
|
||||
const response = await fetch(apiUrl, { method, headers, signal });
|
||||
return processResponse(response);
|
||||
return processResponse(response, skipCamelize);
|
||||
}
|
||||
|
||||
interface PostArgs {
|
||||
|
@@ -7,6 +7,8 @@ export async function getDNSProvidersAcmesh(
|
||||
const { result } = await api.get(
|
||||
{
|
||||
url: "dns-providers/acmesh",
|
||||
// Important for this endpoint:
|
||||
skipCamelize: true,
|
||||
},
|
||||
abortController,
|
||||
);
|
||||
|
@@ -74,18 +74,25 @@ export interface DNSProvider {
|
||||
meta: any;
|
||||
}
|
||||
|
||||
export interface DNSProvidersAcmeshField {
|
||||
name: string;
|
||||
export interface DNSProvidersAcmeshProperty {
|
||||
title: string;
|
||||
type: string;
|
||||
metaKey: string;
|
||||
isRequired: boolean;
|
||||
additionalProperties: boolean;
|
||||
minimum: number;
|
||||
maximum: number;
|
||||
minLength: number;
|
||||
maxLength: number;
|
||||
pattern: string;
|
||||
isSecret: boolean;
|
||||
}
|
||||
|
||||
export interface DNSProvidersAcmesh {
|
||||
name: string;
|
||||
acmeshName: string;
|
||||
fields: DNSProvidersAcmeshField[];
|
||||
title: string;
|
||||
type: string;
|
||||
additionalProperties: boolean;
|
||||
minProperties: number;
|
||||
required: string[];
|
||||
properties: any;
|
||||
}
|
||||
|
||||
export interface Host {
|
||||
|
Reference in New Issue
Block a user