add list api keys for account, track last_used for api_keys

This commit is contained in:
Dave Horton
2020-07-22 11:31:05 -04:00
parent 4efee5a8b8
commit 3be0412de1
7 changed files with 208 additions and 28 deletions
+54
View File
@@ -1,11 +1,53 @@
const Model = require('./model');
const {getMysqlConnection} = require('../db');
class ApiKey extends Model {
constructor() {
super();
}
/**
* list all api keys for an account
*/
static retrieveAll(account_sid) {
const sql = account_sid ?
'SELECT * from api_keys WHERE account_sid = ?' :
'SELECT * from api_keys WHERE account_sid IS NULL';
const args = account_sid ? [account_sid] : [];
return new Promise((resolve, reject) => {
getMysqlConnection((err, conn) => {
if (err) return reject(err);
conn.query(sql, args, (err, results) => {
conn.release();
if (err) return reject(err);
resolve(results);
});
});
});
}
/**
* update last_used api key for an account
*/
static updateLastUsed(account_sid) {
const sql = 'UPDATE api_keys SET last_used = NOW() WHERE account_sid = ?';
const args = [account_sid];
return new Promise((resolve, reject) => {
getMysqlConnection((err, conn) => {
if (err) return reject(err);
conn.query(sql, args, (err, results) => {
conn.release();
if (err) return reject(err);
resolve(results);
});
});
});
}
}
ApiKey.table = 'api_keys';
ApiKey.fields = [
{
@@ -25,6 +67,18 @@ ApiKey.fields = [
{
name: 'service_provider_sid',
type: 'string'
},
{
name: 'expires_at',
type: 'date'
},
{
name: 'created_at',
type: 'date'
},
{
name: 'last_used',
type: 'date'
}
];