diff --git a/app/db/models/users/queries.server.ts b/app/db/models/users/queries.server.ts index 57c2460de..d29169d40 100644 --- a/app/db/models/users/queries.server.ts +++ b/app/db/models/users/queries.server.ts @@ -6,7 +6,7 @@ import type { UserWeapon, UserWithPlusTier, } from "../../types"; -import { parseDBArray } from "~/utils/sql"; +import { parseDBJsonArray } from "~/utils/sql"; import { dateToDatabaseTimestamp } from "~/utils/dates"; import addPatronDataSql from "./addPatronData.sql"; @@ -144,7 +144,7 @@ export function findByIdentifier(identifier: string | number) { return { ...row, css: css ? JSON.parse(css) : undefined, - weapons: parseDBArray(weapons), + weapons: parseDBJsonArray(weapons), team: teamName ? { name: teamName, diff --git a/app/utils/sql.ts b/app/utils/sql.ts index 35485f7e8..64a4be102 100644 --- a/app/utils/sql.ts +++ b/app/utils/sql.ts @@ -7,8 +7,10 @@ export function parseDBJsonArray(value: any) { // If the returned array of JSON objects from DB is empty // it will be returned as object with all values being null - // this is a workaround for that - return parsed.filter((item: any) => Object.values(item).some(Boolean)); + // this is a (hacky) workaround for that + return parsed.filter((item: any) => + Object.values(item).some((val) => val !== null) + ); } export function parseDBArray(value: any) {