Pārlūkot izejas kodu

refactor dateToUTC

Pouria Ezzati 1 gadu atpakaļ
vecāks
revīzija
b4cfc8983b
3 mainītis faili ar 15 papildinājumiem un 15 dzēšanām
  1. 2 2
      knexfile.js
  2. 3 3
      server/knex.js
  3. 10 10
      server/utils/utils.js

+ 2 - 2
knexfile.js

@@ -1,11 +1,11 @@
 const env = require("./server/env");
 
-const isSqlite = env.DB_CLIENT === "sqlite3" || env.DB_CLIENT === "better-sqlite3";
+const isSQLite = env.DB_CLIENT === "sqlite3" || env.DB_CLIENT === "better-sqlite3";
 
 module.exports = {
   client: env.DB_CLIENT,
   connection: {
-    ...(isSqlite && { filename: "db/" + env.DB_FILENAME }),
+    ...(isSQLite && { filename: "db/" + env.DB_FILENAME }),
     host: env.DB_HOST,
     database: env.DB_NAME,
     user: env.DB_USER,

+ 3 - 3
server/knex.js

@@ -2,14 +2,14 @@ const knex = require("knex");
 
 const env = require("./env");
 
-const isSqlite = env.DB_CLIENT === "sqlite3" || env.DB_CLIENT === "better-sqlite3";
+const isSQLite = env.DB_CLIENT === "sqlite3" || env.DB_CLIENT === "better-sqlite3";
 const isPostgres = env.DB_CLIENT === "pg" || env.DB_CLIENT === "pg-native";
 const isMySQL = env.DB_CLIENT === "mysql" || env.DB_CLIENT === "mysql2";
 
 const db = knex({
   client: env.DB_CLIENT,
   connection: {
-    ...(isSqlite && { filename: "db/" + env.DB_FILENAME }),
+    ...(isSQLite && { filename: "db/" + env.DB_FILENAME }),
     host: env.DB_HOST,
     port: env.DB_PORT,
     database: env.DB_NAME,
@@ -25,7 +25,7 @@ const db = knex({
 });
 
 db.isPostgres = isPostgres;
-db.isSqlite = isSqlite;
+db.isSQLite = isSQLite;
 db.isMySQL = isMySQL;
 
 module.exports = db;

+ 10 - 10
server/utils/utils.js

@@ -115,7 +115,7 @@ function getDifferenceFunction(type) {
 }
 
 function parseDatetime(date) {
-  // because postgres returns date, sqlite returns iso 8601 string in utc
+  // because postgres and mysql return date, sqlite returns formatted iso 8601 string in utc
   return date instanceof Date ? date : new Date(date + "Z");
 }
 
@@ -129,17 +129,17 @@ function parseTimestamps(item) {
 function dateToUTC(date) {
   const dateUTC = date instanceof Date ? date.toISOString() : new Date(date).toISOString();
 
-  // databases other than postgres need the date to be formatted in 'YYYY-MM-DD hh:mm:ss'
-  if (!knex.isPostgres) {
-    // mysql doesn't save time in utc, so format the date in local timezone instead
-    if (knex.isMySQL) {
-      return format(new Date(date), "yyyy-MM-dd HH:mm:ss");
-    }
-    // format utc date instead of local date
-    // (this is the same as the format function above, just tiny tiny faster)
+  // format the utc date in 'YYYY-MM-DD hh:mm:ss' for SQLite
+  if (knex.isSQLite) {
     return dateUTC.substring(0, 10) + " " + dateUTC.substring(11, 19);
-  };
+  }
+  
+  // mysql doesn't save time in utc, so format the date in local timezone instead
+  if (knex.isMySQL) {
+    return format(new Date(date), "yyyy-MM-dd HH:mm:ss");
+  }
   
+  // return unformatted utc string for postgres
   return dateUTC;
 }