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.
73 lines (72 loc) • 3.65 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import AxiosClient from './AxiosClient.js';
import NameApiError from './NameApiError.js';
export default class NameComTransfers extends AxiosClient {
listTransfers(perPage = 0, page = 0) {
return __awaiter(this, void 0, void 0, function* () {
try {
const params = `perPage=${perPage}&page=${page}`;
const response = yield this.axiosInstance.get(`/transfers?${params}`);
return response.data;
}
catch (error) {
//console.error('Error listing transfers:', error.response.data);
throw error;
}
});
}
getTransfer(domainName, id) {
return __awaiter(this, void 0, void 0, function* () {
try {
const response = yield this.axiosInstance.get(`/transfers/${domainName}`);
return response.data;
}
catch (error) {
//console.error('Error getting transfer:', error.response.data);
throw error;
}
});
}
createTransfer(transfer) {
return __awaiter(this, void 0, void 0, function* () {
console.log("curl -u '" + this.username + ":" + this.token + "' 'https://api.dev.name.com/v4/transfers' -X POST -H 'Content-Type: application/json' --data '{\"domainName\":" + transfer.domainName + ",\"authCode\":\"Authc0de\",\"purchasePrice\":" + transfer.purchasePrice + "'");
try {
// console.log(`curl -X POST -H "Content-Type: application/json" -u "${this.username+':'+this.token}" -d '${JSON.stringify(domainData)}' ${this.baseUrl}/domains`);
const response = yield this.axiosInstance.post(`/transfers`, transfer);
if (response.status >= 400 && response.status < 500) {
const responseBody = response.data;
throw new NameApiError("API Error 400", true, response.status, responseBody);
}
return response.data;
}
catch (error) {
if (error.response) {
const responseBody = error.response.data;
throw new NameApiError("API Error", true, error.response.status, responseBody);
}
throw new NameApiError("API Error", true, 500, { message: error.message, details: "Generic Error" });
}
});
}
// CancelTransfer cancels a pending transfer request and refunds the amount to account credit.
cancelTransfer(transferRequest) {
return __awaiter(this, void 0, void 0, function* () {
const endpoint = `/transfers/${transferRequest.domainName}:cancel`;
try {
const response = yield this.axiosInstance.post(endpoint, transferRequest);
return response.data;
}
catch (error) {
throw error;
}
});
}
}