UNPKG

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
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; } }); } }