Add support for sending stats to Matrix, split out some code into more generic classes. #1

Open
rory.gay wants to merge 35 commits from rory.gay/freepbx-stats:main into main
3 changed files with 23 additions and 18 deletions
Showing only changes of commit 723e4ac54f - Show all commits

View file

@ -2,8 +2,8 @@
charset = utf-8 charset = utf-8
end_of_line = lf end_of_line = lf
indent_size = 4 indent_size = 4
indent_style = tab indent_style = space
insert_final_newline = true insert_final_newline = false
max_line_length = 120 max_line_length = 120
tab_width = 4 tab_width = 4
ij_continuation_indent_size = 8 ij_continuation_indent_size = 8
@ -332,9 +332,9 @@ ij_javascript_align_multiline_ternary_operation = false
ij_javascript_align_object_properties = 0 ij_javascript_align_object_properties = 0
ij_javascript_align_union_types = false ij_javascript_align_union_types = false
ij_javascript_align_var_statements = 0 ij_javascript_align_var_statements = 0
ij_javascript_array_initializer_new_line_after_left_brace = false ij_javascript_array_initializer_new_line_after_left_brace = true
ij_javascript_array_initializer_right_brace_on_new_line = false ij_javascript_array_initializer_right_brace_on_new_line = true
ij_javascript_array_initializer_wrap = off ij_javascript_array_initializer_wrap = on_every_item
ij_javascript_assignment_wrap = off ij_javascript_assignment_wrap = off
ij_javascript_binary_operation_sign_on_next_line = false ij_javascript_binary_operation_sign_on_next_line = false
ij_javascript_binary_operation_wrap = off ij_javascript_binary_operation_wrap = off

View file

@ -13,6 +13,9 @@
<option name="ENABLED" value="false" /> <option name="ENABLED" value="false" />
</editorconfig> </editorconfig>
<codeStyleSettings language="JavaScript"> <codeStyleSettings language="JavaScript">
<option name="ARRAY_INITIALIZER_WRAP" value="5" />
<option name="ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE" value="true" />
<option name="ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE" value="true" />
<indentOptions> <indentOptions>
<option name="USE_TAB_CHARACTER" value="true" /> <option name="USE_TAB_CHARACTER" value="true" />
</indentOptions> </indentOptions>

View file

@ -50,7 +50,8 @@ async function queryScalarAsync(query, ...params) {
* @returns {Promise<CallStats>} * @returns {Promise<CallStats>}
*/ */
async function getPreviousDayData() { async function getPreviousDayData() {
const [ callsYesterday, callsThisMonth, callsTotal ] = await Promise.all([ queryScalarAsync(` const [ callsYesterday, callsThisMonth, callsTotal ] = await Promise.all([
queryScalarAsync(`
SELECT COUNT(DISTINCT uniqueid) AS call_count SELECT COUNT(DISTINCT uniqueid) AS call_count
FROM cdr FROM cdr
WHERE calldate BETWEEN ? AND ?; WHERE calldate BETWEEN ? AND ?;
@ -61,7 +62,8 @@ async function getPreviousDayData() {
`, getYesterday().startDate.getMonth(), getYesterday().startDate.getFullYear()), queryScalarAsync(` `, getYesterday().startDate.getMonth(), getYesterday().startDate.getFullYear()), queryScalarAsync(`
SELECT COUNT(DISTINCT uniqueid) AS call_count SELECT COUNT(DISTINCT uniqueid) AS call_count
FROM cdr; FROM cdr;
`) ]); `)
]);
const stats = new CallStats({ const stats = new CallStats({
totalCallsMade: callsYesterday, totalCallsThisMonth: callsThisMonth, totalCallsEverPlaced: callsTotal totalCallsMade: callsYesterday, totalCallsThisMonth: callsThisMonth, totalCallsEverPlaced: callsTotal
}); });
@ -120,7 +122,7 @@ async function sendSummary() {
const data = await getPreviousDayData(); const data = await getPreviousDayData();
console.log("Updating records..."); console.log("Updating records...");
const stats = await updateRecords(data); const stats = await updateRecords(data);
if(!process.env.NO_SAVE_RECORDS) { if (!process.env.NO_SAVE_RECORDS) {
console.log("Saving."); console.log("Saving.");
await records.toJSONFile(JSON_FILE); await records.toJSONFile(JSON_FILE);
} }