3 const LOGGER
= require('@calzoneman/jsli')('AliasesDB');
10 async
addAlias(ip
, name
) {
11 return this.db
.runTransaction(async tx
=> {
13 await tx
.table('aliases')
16 await tx
.table('aliases')
17 .insert({ ip
, name
, time
: Date
.now() });
19 LOGGER
.error('Failed to save alias: %s (ip=%s, name=%s)',
20 error
.message
, ip
, name
);
25 async
getAliasesByIP(ip
) {
26 return this.db
.runTransaction(async tx
=> {
27 const query
= tx
.table('aliases');
29 query
.where({ ip
: ip
});
31 const delimiter
= /^[0-9]+\./.test(ip
) ? '.' : ':';
32 query
.where('ip', 'LIKE', ip
+ delimiter
+ '%');
35 const rows
= await query
.select()
37 .orderBy('time', 'desc')
39 return rows
.map(row
=> row
.name
);
43 async
getIPsByName(name
) {
44 return this.db
.runTransaction(async tx
=> {
45 const rows
= await tx
.table('aliases')
48 return rows
.map(row
=> row
.ip
);