ilkbyte
Version:
Ilkbyte dökümantasyonundan yola çıkarak hazırlanan paket sayesinde işlerinizi kolaylaştırabilirsiniz.
291 lines (290 loc) • 9.11 kB
JavaScript
const axios = require("axios")
class IlkByte {
constructor (options) {
this.baseUrl = "https://api.ilkbyte.com"
this.access = options.access || null
this.secret = options.secret || null
this.serverName = options.serverName || null
}
async account () {
try {
const results = await this.request("get","/account")
return results.data
}
catch (error) {
throw error
}
}
async accounts () {
try {
const results = await this.request("get","/account/users")
return results.data
}
catch (error) {
throw error
}
}
setServerName (value) {
this.serverName = value
}
async request (method,path,data,params) {
let aParams = ""
if ( params && typeof params == 'object') {
Object.keys(params).forEach(element => {
aParams += `&${element}=${params[element]}`
})
}
const url = this.baseUrl + path + "?access="+this.access+"&secret="+this.secret + aParams
let result = null
try {
if (method === "get") {
result = await axios.get(url)
}
else {
throw "request fail"
}
if (result && result.data.status != false)
return result
else {
throw result.data ? result.data : result
}
}
catch (error) {
throw error.response ? error.response.data : error
}
}
async servers (p) {
try {
const results = await this.request("get","/server/list/all",null, p ? {p} : null)
return results.data
}
catch (error) {
throw error
}
}
async activeServers (p) {
try {
const results = await this.request("get","/server/list",null, p ? {p} : null)
return results.data
}
catch (error) {
throw error
}
}
async configInfo () {
try {
const results = await this.request("get","/server/create")
return results.data
}
catch (error) {
throw error
}
}
async createServer (username, password, name, os_id, app_id, package_id, sshkey) {
try {
const results = await this.request("get","/server/create/config",null, {
username,
password,
name,
os_id,
app_id,
package_id,
sshkey
})
return results.data
}
catch (error) {
throw error
}
}
async serverInfo (serverName) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/show`)
return results.data
}
catch (error) {
throw error
}
}
async serverPower (serverName,set) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/power`,null,{set})
return results.data
}
catch (error) {
throw error
}
}
async serverIpList (serverName) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/ip/list`)
return results.data
}
catch (error) {
throw error
}
}
async serverIpLogs (serverName) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/ip/logs`)
return results.data
}
catch (error) {
throw error
}
}
async serverIpRdns (serverName,ip,rdns) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/ip/rdns`,null,{ip,rdns})
return results.data
}
catch (error) {
throw error
}
}
async snapshot (serverName) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/snapshot`)
return results.data
}
catch (error) {
throw error
}
}
async createSnapshot (serverName,name) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/snapshot/create`,null,{name})
return results.data
}
catch (error) {
throw error
}
}
async revertSnapshot (serverName, name) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/snapshot/revert`,null,{name})
return results.data
}
catch (error) {
throw error
}
}
async updateSnapshot (serverName, name) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/snapshot/update`,null,{name})
return results.data
}
catch (error) {
throw error
}
}
async deleteSnapshot (serverName, name) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/snapshot/delete`,null,{name})
return results.data
}
catch (error) {
throw error
}
}
async addCron (serverName, name, day, hour, min) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/snapshot/cron/add`,null,{name,day,hour,min})
return results.data
}
catch (error) {
throw error
}
}
async deleteCron (serverName, name) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/snapshot/cron/delete`,null,{name})
return results.data
}
catch (error) {
throw error
}
}
async backupList (serverName) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/backup`)
return results.data
}
catch (error) {
throw error
}
}
async backupRestore (serverName, backup_name) {
try {
const results = await this.request("get",`/server/manage/${serverName || this.serverName}/backup/restore`,null,{backup_name})
return results.data
}
catch (error) {
throw error
}
}
async domainList (p) {
try {
const results = await this.request("get","/domain/list",null, p ? {p} : null)
return results.data
}
catch (error) {
throw error
}
}
async createDomain (domain,server,ipv6) {
try {
const results = await this.request("get","/domain/create",null, {domain,server,ipv6})
return results.data
}
catch (error) {
throw error
}
}
async detailDns (domainName) {
try {
const results = await this.request("get",`/domain/manage/${domainName}/show`)
return results.data
}
catch (error) {
throw error
}
}
async addDns (domainName,record_name, record_type, record_content, record_priority) {
try {
const results = await this.request("get",`/domain/manage/${domainName}/add`,null,{record_name,record_type,record_content,record_priority})
return results.data
}
catch (error) {
throw error
}
}
async updateDns (domainName,record_id, record_content, record_priority) {
try {
const results = await this.request("get",`/domain/manage/${domainName}/update`,null,{record_id,record_content,record_priority})
return results.data
}
catch (error) {
throw error
}
}
async deleteDns (domainName, record_id) {
try {
const results = await this.request("get",`/domain/manage/${domainName}/delete`,null,{record_id})
return results.data
}
catch (error) {
throw error
}
}
async pushDns (domainName) {
try {
const results = await this.request("get",`/domain/manage/${domainName}/push`)
return results.data
}
catch (error) {
throw error
}
}
}
module.exports = IlkByte;