2017-10-31 12:15:49 +08:00
|
|
|
const utils = require('./utils');
|
2018-04-03 08:46:46 +08:00
|
|
|
const dateUtils = require('./date_utils');
|
2017-11-07 08:23:35 +08:00
|
|
|
const log = require('./log');
|
2017-11-17 10:50:00 +08:00
|
|
|
const sql = require('./sql');
|
2018-04-03 09:25:20 +08:00
|
|
|
const sqlInit = require('./sql_init');
|
2018-03-29 11:41:22 +08:00
|
|
|
const cls = require('./cls');
|
2017-10-31 12:15:49 +08:00
|
|
|
|
2017-12-24 02:55:13 +08:00
|
|
|
async function saveSourceId(sourceId) {
|
2018-04-02 00:45:35 +08:00
|
|
|
await sql.insert("source_ids", {
|
|
|
|
sourceId: sourceId,
|
2019-03-14 05:43:59 +08:00
|
|
|
utcDateCreated: dateUtils.utcNowDateTime()
|
2017-12-17 09:48:34 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
await refreshSourceIds();
|
2017-12-24 02:55:13 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
function createSourceId() {
|
|
|
|
const sourceId = utils.randomString(12);
|
|
|
|
|
|
|
|
log.info("Generated sourceId=" + sourceId);
|
|
|
|
return sourceId;
|
|
|
|
}
|
|
|
|
|
|
|
|
async function generateSourceId() {
|
|
|
|
const sourceId = createSourceId();
|
|
|
|
|
|
|
|
await saveSourceId(sourceId);
|
2017-12-17 09:48:34 +08:00
|
|
|
|
|
|
|
return sourceId;
|
|
|
|
}
|
2017-11-17 10:50:00 +08:00
|
|
|
|
2017-12-17 09:48:34 +08:00
|
|
|
async function refreshSourceIds() {
|
2020-04-04 20:57:19 +08:00
|
|
|
const sourceIdsArr = await sql.getColumn("SELECT sourceId FROM source_ids ORDER BY utcDateCreated DESC");
|
|
|
|
|
|
|
|
allSourceIds = {};
|
|
|
|
|
|
|
|
for (const sourceId of sourceIdsArr) {
|
|
|
|
allSourceIds[sourceId] = true;
|
|
|
|
}
|
2017-12-17 09:48:34 +08:00
|
|
|
}
|
|
|
|
|
2020-04-04 20:57:19 +08:00
|
|
|
let allSourceIds = {};
|
2017-12-17 09:48:34 +08:00
|
|
|
|
2017-11-17 10:50:00 +08:00
|
|
|
function isLocalSourceId(srcId) {
|
2020-04-04 20:57:19 +08:00
|
|
|
return !!allSourceIds[srcId];
|
2017-11-17 10:50:00 +08:00
|
|
|
}
|
|
|
|
|
2017-12-24 02:55:13 +08:00
|
|
|
const currentSourceId = createSourceId();
|
|
|
|
|
|
|
|
// this will also refresh source IDs
|
2018-04-03 09:25:20 +08:00
|
|
|
sqlInit.dbReady.then(cls.wrap(() => saveSourceId(currentSourceId)));
|
2017-12-17 10:23:35 +08:00
|
|
|
|
2017-12-24 02:55:13 +08:00
|
|
|
function getCurrentSourceId() {
|
|
|
|
return currentSourceId;
|
2017-12-17 10:23:35 +08:00
|
|
|
}
|
2017-12-17 09:48:34 +08:00
|
|
|
|
2017-11-17 10:50:00 +08:00
|
|
|
module.exports = {
|
2017-12-17 09:48:34 +08:00
|
|
|
generateSourceId,
|
2017-12-17 10:23:35 +08:00
|
|
|
getCurrentSourceId,
|
2017-11-17 10:50:00 +08:00
|
|
|
isLocalSourceId
|
|
|
|
};
|