UNPKG

eppface

Version:

epp api

118 lines (112 loc) 4.89 kB
function admin(epp, posts) { this.list_transfer = function(page, cb, target) { var from_transfer = "FROM transfer WHERE status='pending' AND side='agent'"; switch(target.obj) { case 'domain': from_transfer += " and obj='domain'"; break; case 'contact': from_transfer += " and obj='contact'"; break; } function _data(r) { r.re_date = r.re_date.toISOString(); r.ac_date = r.ac_date.toISOString(); if(r.obj==='domain') r.ex_date = r.ex_date.toISOString(); return r; } function lists(count) { var pages = Math.floor((count+posts-1)/posts); if(page > pages) page = pages; if(page < 1) page = 1; epp.query("SELECT * "+from_transfer+" ORDER BY id DESC LIMIT ?,?", [(page-1)*posts, posts], function(err, rows) { err ? cb() : cb('1000', {page: page, pages: pages, rows: rows.map(_data)}); }); } epp.query("SELECT count(*) AS total "+from_transfer, function(err, rows) { err ? cb() : rows[0].total ? lists(rows[0].total) : cb('1000', {page: 1, pages: 0, rows: []}); }); }; this.server_approve = function(id, cb) { epp.query("SELECT * FROM transfer WHERE id=?", [id], function(err, rows) { if(!err && rows.length) { switch(rows[0].obj) { case 'domain': epp.query("update domain set user=? where name=?", [rows[0].re_id, rows[0].name]); epp.query("update host set user=? where name=? or name like ?", [rows[0].re_id, rows[0].name, '%.'+rows[0].name]); var pay = epp.payment; pay.done({ user: rows[0].ac_id, op: 'transferOut', domain: rows[0].name, appID: '', registrant: '', opDate: (new Date()).toISOString(), price: 0, period: 0, exDate: rows[0].ex_date.toISOString(), oldID: '', uniID: 'transferOut-'+rows[0].id }); pay.done({ user: rows[0].re_id, op: 'transferIn', domain: rows[0].name, appID: '', registrant: '', opDate: (new Date()).toISOString(), price: 0, period: 0, exDate: rows[0].ex_date.toISOString(), oldID: '', uniID: 'transferIn-'+rows[0].id }); break; case 'contact': epp.query("update contact set user=? where name=?", [rows[0].re_id, rows[0].name]); break; } epp.query("UPDATE transfer SET status='serverApproved',ac_date=now(),ack='no' WHERE id=?", [id]); } cb('1000'); }); }; this.server_cancel = function(id, cb) { epp.query("UPDATE transfer SET status='serverCancelled',ac_date=now(),ack='no' WHERE id=?", [id], function() { cb('1000'); }); }; this.list_launch = function(page, cb) { var from_launch_domain = "from launch_domain where status!='allocated' AND status!='rejected'"; function _data(rows) { var _rows = []; for(var i=0; i<rows.length; i++) { var json = JSON.parse(rows[i].json); _rows.push({ id : rows[i].ap_id, name : rows[i].name, registrant: json.registrant, ex_date : rows[i].ex_date.toISOString(), pw : json.pw, phase : rows[i].phase, user : rows[i].user }); } return _rows; } function lists(count) { var pages = Math.floor((count+posts-1)/posts); if(page > pages) page = pages; if(page < 1) page = 1; epp.query("SELECT * "+from_launch_domain+" ORDER BY id DESC LIMIT ?,?", [(page-1)*posts, posts], function(err, rows) { err ? cb() : cb('1000', {page: page, pages: pages, rows: _data(rows)}); }); } epp.query("select count(*) AS total "+from_launch_domain, function(err, rows) { err ? cb() : rows[0].total ? lists(rows[0].total) : cb('1000', {page: 1, pages: 0, rows: []}); }); }; } module.exports = admin;