namecomv4
Version:
A Node.js library wrapper for Name.com's V4 API, designed to simplify domain management tasks such as querying domain information, managing DNS records, and handling domain registration and transfer.
69 lines (56 loc) • 1.81 kB
text/typescript
import AxiosClient from './AxiosClient.js';
import { ListVanityNameserversRequest, VanityNameserver } from './types/index.js';
export default class NameComVanityNameservers extends AxiosClient {
async listVanityNameservers(request: ListVanityNameserversRequest) {
const endpoint = `/domains/${request.domainName}/vanity_nameservers`;
const params:any = {};
if (request.perPage !== 0) {
params.perPage = request.perPage;
}
if (request.page !== 0) {
params.page = request.page;
}
try {
const response = await this.axiosInstance.get(endpoint, { params });
return response.data;
} catch (error) {
throw error;
}
}
async getVanityNameserver(request: any) {
const endpoint = `/domains/${request.domainName}/vanity_nameservers/${request.hostname}`;
try {
const response = await this.axiosInstance.get(endpoint);
return response.data;
} catch (error) {
throw error;
}
}
async createVanityNameserver(request: VanityNameserver) {
const endpoint = `/domains/${request.domainName}/vanity_nameservers`;
try {
const response = await this.axiosInstance.post(endpoint, request);
return response.data;
} catch (error) {
throw error;
}
}
async updateVanityNameserver(request: VanityNameserver) {
const endpoint = `/domains/${request.domainName}/vanity_nameservers/${request.hostname}`;
try {
const response = await this.axiosInstance.put(endpoint, request);
return response.data;
} catch (error) {
throw error;
}
}
async deleteVanityNameserver(request: VanityNameserver) {
const endpoint = `/domains/${request.domainName}/vanity_nameservers/${request.hostname}`;
try {
const response = await this.axiosInstance.delete(endpoint, { data: request });
return response.data;
} catch (error) {
throw error;
}
}
}