فهرست منبع

small code formatting

Pouria Ezzati 1 سال پیش
والد
کامیت
1f33142996

+ 3 - 4
server/handlers/validators.handler.js

@@ -385,15 +385,14 @@ async function malware(user, target) {
       })
     }
   ).then(res => res.json());
+
   if (!isMalware.data || !isMalware.data.matches) return;
 
   if (user) {
     const [updatedUser] = await query.user.update(
       { id: user.id },
-      {
-        cooldown: new Date().toISOString(),
-      },
-      ['malicious_attempts']
+      { cooldown: new Date().toISOString() },
+      { increments: ["malicious_attempts"] }
     );
 
     // Ban if too many cooldowns

+ 6 - 12
server/queries/domain.queries.js

@@ -28,9 +28,7 @@ function get(match) {
 async function add(params) {
   params.address = params.address.toLowerCase();
 
-  const existingDomain = await knex("domains")
-    .where("address", params.address)
-    .first();
+  const existingDomain = await knex("domains").where("address", params.address).first();
 
   let id = existingDomain?.id;
 
@@ -43,12 +41,10 @@ async function add(params) {
   };
 
   if (id) {
-    await knex("domains")
-      .where("id", id)
-      .update({
-        ...newDomain,
-        updated_at: params.updated_at || new Date().toISOString()
-      });
+    await knex("domains").where("id", id).update({
+      ...newDomain,
+      updated_at: params.updated_at || new Date().toISOString()
+    });
   } else {
     // Mysql and sqlite don't support returning but return the inserted id by default
     const [createdDomain] = await knex("domains").insert(newDomain).returning("id");
@@ -68,9 +64,7 @@ async function update(match, update) {
     .where(match)
     .update({ ...update, updated_at: new Date().toISOString() });
 
-  const domains = await knex("domains")
-    .select("*")
-    .where(match);
+  const domains = await knex("domains").select("*").where(match);
 
   domains.forEach(redis.remove.domain);
 

+ 6 - 11
server/queries/host.queries.js

@@ -26,9 +26,7 @@ async function find(match) {
 async function add(params) {
   params.address = params.address.toLowerCase();
 
-  const existingHost = await knex("hosts")
-    .where("address", params.address)
-    .first();
+  const existingHost = await knex("hosts").where("address", params.address).first();
 
   let id = existingHost?.id;
 
@@ -39,12 +37,10 @@ async function add(params) {
   };
 
   if (id) {
-    await knex("hosts")
-      .where("id", id)
-      .update({
-          ...newHost,
-          updated_at: params.updated_at || new Date().toISOString()
-      });
+    await knex("hosts").where("id", id).update({
+      ...newHost,
+      updated_at: params.updated_at || new Date().toISOString()
+    });
   } else {
     // Mysql and sqlite don't support returning but return the inserted id by default
     const [createdHost] = await knex("hosts").insert(newHost).returning("id");
@@ -52,8 +48,7 @@ async function add(params) {
   }
 
   // Query domain instead of using returning as sqlite and mysql don't support it
-  const host = await knex("hosts")
-    .where("id", id);
+  const host = await knex("hosts").where("id", id);
 
   redis.remove.host(host);
 

+ 1 - 3
server/queries/link.queries.js

@@ -170,9 +170,7 @@ async function update(match, update) {
     .where(match)
     .update({ ...update, updated_at: new Date().toISOString() });
 
-  const links = await knex("links")
-    .select('*')
-    .where(match);
+  const links = await knex("links").select('*').where(match);
 
   links.forEach(redis.remove.link);
   

+ 8 - 6
server/queries/user.queries.js

@@ -51,21 +51,23 @@ async function add(params, user) {
   };
 }
 
-async function update(match, update, increments = []) {
+async function update(match, update, methods) {
   const query = knex("users");
 
   Object.entries(match).forEach(([key, value]) => {
     query.andWhere(key, ...(Array.isArray(value) ? value : [value]));
   });
 
-  let updateQuery = query.clone();
-  increments.forEach(columnName => {
-    updateQuery.increment(columnName);
-  });
+  const updateQuery = query.clone();
+  if (methods?.increments) {
+    methods.increments.forEach(columnName => {
+      updateQuery.increment(columnName);
+    });
+  }
   
   await updateQuery.update({ ...update, updated_at: new Date().toISOString() });
 
-  const users = await query.select('*');
+  const users = await query.select("*");
 
   users.forEach(redis.remove.user);
   

+ 23 - 24
server/utils/knex.js

@@ -1,44 +1,43 @@
 
 function knexUtils(knex) {
-
-  function truncatedTimestamp(columnName, precision = 'hour') {
+  function truncatedTimestamp(columnName, precision = "hour") {
     switch (knex.client.driverName) {
-      case 'sqlite3':
-      case 'better-sqlite3':
+      case "sqlite3":
+      case "better-sqlite3":
         // SQLite uses strftime for date truncation
         const sqliteFormats = {
-          second: '%Y-%m-%d %H:%M:%S',
-          minute: '%Y-%m-%d %H:%M:00',
-          hour: '%Y-%m-%d %H:00:00',
-          day: '%Y-%m-%d 00:00:00',
+          second: "%Y-%m-%d %H:%M:%S",
+          minute: "%Y-%m-%d %H:%M:00",
+          hour: "%Y-%m-%d %H:00:00",
+          day: "%Y-%m-%d 00:00:00",
         };
         return knex.raw(`strftime('${sqliteFormats[precision]}', ${columnName})`); // Default to 'hour'
-      case 'mssql':
+      case "mssql":
         // For MSSQL, we can use FORMAT or CONVERT to truncate the timestamp
         const mssqlFormats = {
-          second: 'yyyy-MM-dd HH:mm:ss',
-          minute: 'yyyy-MM-dd HH:mm:00',
-          hour: 'yyyy-MM-dd HH:00:00',
-          day: 'yyyy-MM-dd 00:00:00',
+          second: "yyyy-MM-dd HH:mm:ss",
+          minute: "yyyy-MM-dd HH:mm:00",
+          hour: "yyyy-MM-dd HH:00:00",
+          day: "yyyy-MM-dd 00:00:00",
         };
         return knex.raw(`FORMAT(${columnName}, '${mssqlFormats[precision]}'`);
-      case 'pg':
-      case 'pgnative':
-      case 'cockroachdb':
+      case "pg":
+      case "pgnative":
+      case "cockroachdb":
         // PostgreSQL has the `date_trunc` function, which is ideal for this task
         return knex.raw(`date_trunc(?, ${columnName})`, [precision]);
-      case 'oracle':
-      case 'oracledb':
+      case "oracle":
+      case "oracledb":
         // Oracle truncates dates using the `TRUNC` function
         return knex.raw(`TRUNC(${columnName}, ?)`, [precision]);
-      case 'mysql':
-      case 'mysql2':
+      case "mysql":
+      case "mysql2":
         // MySQL can use the DATE_FORMAT function to truncate
         const mysqlFormats = {
-          second: '%Y-%m-%d %H:%i:%s',
-          minute: '%Y-%m-%d %H:%i:00',
-          hour: '%Y-%m-%d %H:00:00',
-          day: '%Y-%m-%d 00:00:00',
+          second: "%Y-%m-%d %H:%i:%s",
+          minute: "%Y-%m-%d %H:%i:00",
+          hour: "%Y-%m-%d %H:00:00",
+          day: "%Y-%m-%d 00:00:00",
         };
         return knex.raw(`DATE_FORMAT(${columnName}, '${mysqlFormats[precision]}')`);
       default:

+ 1 - 1
server/utils/utils.js

@@ -1,10 +1,10 @@
 const { differenceInDays, differenceInHours, differenceInMonths, differenceInMilliseconds, addDays, subHours, subDays, subMonths, subYears } = require("date-fns");
 const nanoid = require("nanoid/generate");
+const knexUtils = require("./knex");
 const JWT = require("jsonwebtoken");
 const path = require("path");
 const hbs = require("hbs");
 const ms = require("ms");
-const knexUtils = require('./knex')
 
 const env = require("../env");