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.
55 lines (45 loc) • 1.97 kB
text/typescript
import AxiosClient from './AxiosClient.js';
import { EmailForwarding } from './types/index.js';
class NameComEmailForwarding extends AxiosClient{
async listEmailForwarding(domainName: string) {
try {
const response = await this.axiosInstance.get(`/domains/${domainName}/email/forwarding`);
return response.data;
} catch (error:any) {
throw new Error(`Error listing email forwarding: ${error.message}`);
}
}
async getEmailForwarding(domainName:string, id:number ) {
try {
const response = await this.axiosInstance.get(`/domains/${domainName}/email/forwarding/${id}`);
return response.data;
} catch (error:any) {
throw new Error(`Error getting email forwarding: ${error.message}`);
}
}
async createEmailForwarding(domainName:string, forwarding: EmailForwarding) {
try {
const response = await this.axiosInstance.post(`/domains/${domainName}/email/forwarding`, forwarding);
return response.data;
} catch (error:any) {
throw new Error(`Error creating email forwarding: ${error.message}`);
}
}
async updateEmailForwarding(domainName:string, id:number, forwarding : EmailForwarding) {
try {
const response = await this.axiosInstance.put(`/domains/${domainName}/email/forwarding/${id}`, forwarding);
return response.data;
} catch (error:any) {
throw new Error(`Error updating email forwarding: ${error.message}`);
}
}
async deleteEmailForwarding(domainName:string, id:number) {
try {
const response = await this.axiosInstance.delete(`/domains/${domainName}/email/forwarding/${id}`);
return response.data;
} catch (error:any) {
throw new Error(`Error deleting email forwarding: ${error.message}`);
}
}
}
export default NameComEmailForwarding;