diff --git a/packages/client-core/src/admin/components/Instance/InstanceDrawer.tsx b/packages/client-core/src/admin/components/Instance/InstanceDrawer.tsx index 7a60ea5c46..2d992cd0e0 100644 --- a/packages/client-core/src/admin/components/Instance/InstanceDrawer.tsx +++ b/packages/client-core/src/admin/components/Instance/InstanceDrawer.tsx @@ -40,7 +40,7 @@ import { instanceAttendancePath } from '@etherealengine/engine/src/schemas/netwo import { InstanceID } from '@etherealengine/engine/src/schemas/networking/instance.schema' import { userKickPath } from '@etherealengine/engine/src/schemas/user/user-kick.schema' import { UserID, userPath } from '@etherealengine/engine/src/schemas/user/user.schema' -import { toDateTimeSql } from '@etherealengine/server-core/src/util/get-datetime-sql' +import { toDateTimeSql } from '@etherealengine/server-core/src/util/datetime-sql' import ConfirmDialog from '../../../common/components/ConfirmDialog' import { NotificationService } from '../../../common/services/NotificationService' import DrawerView from '../../common/DrawerView' diff --git a/packages/client-core/src/admin/components/Invite/AdminInvites.tsx b/packages/client-core/src/admin/components/Invite/AdminInvites.tsx index d1b963513f..395026c5e9 100755 --- a/packages/client-core/src/admin/components/Invite/AdminInvites.tsx +++ b/packages/client-core/src/admin/components/Invite/AdminInvites.tsx @@ -34,7 +34,7 @@ import { UserID } from '@etherealengine/engine/src/schemas/user/user.schema' import { useFind, useMutation } from '@etherealengine/engine/src/common/functions/FeathersHooks' import { InviteType, invitePath } from '@etherealengine/engine/src/schemas/social/invite.schema' -import { toDateTimeSql } from '@etherealengine/server-core/src/util/get-datetime-sql' +import { toDateTimeSql } from '@etherealengine/server-core/src/util/datetime-sql' import { INVITE_PAGE_LIMIT } from '../../../social/services/InviteService' import TableComponent from '../../common/Table' import { InviteColumn, inviteColumns } from '../../common/variables/invite' diff --git a/packages/client-core/src/admin/components/Invite/CreateInviteModal.tsx b/packages/client-core/src/admin/components/Invite/CreateInviteModal.tsx index 4b99172ce5..a988de0c98 100755 --- a/packages/client-core/src/admin/components/Invite/CreateInviteModal.tsx +++ b/packages/client-core/src/admin/components/Invite/CreateInviteModal.tsx @@ -50,7 +50,7 @@ import { useFind } from '@etherealengine/engine/src/common/functions/FeathersHoo import { InviteData } from '@etherealengine/engine/src/schemas/social/invite.schema' import { locationPath } from '@etherealengine/engine/src/schemas/social/location.schema' import { userPath } from '@etherealengine/engine/src/schemas/user/user.schema' -import { toDateTimeSql } from '@etherealengine/server-core/src/util/get-datetime-sql' +import { toDateTimeSql } from '@etherealengine/server-core/src/util/datetime-sql' import { NotificationService } from '../../../common/services/NotificationService' import { InviteService } from '../../../social/services/InviteService' import DrawerView from '../../common/DrawerView' diff --git a/packages/client-core/src/admin/components/Invite/UpdateInviteModal.tsx b/packages/client-core/src/admin/components/Invite/UpdateInviteModal.tsx index a03999ba3b..9c735e45a9 100755 --- a/packages/client-core/src/admin/components/Invite/UpdateInviteModal.tsx +++ b/packages/client-core/src/admin/components/Invite/UpdateInviteModal.tsx @@ -51,7 +51,7 @@ import { Engine } from '@etherealengine/engine/src/ecs/classes/Engine' import { InvitePatch, InviteType, invitePath } from '@etherealengine/engine/src/schemas/social/invite.schema' import { locationPath } from '@etherealengine/engine/src/schemas/social/location.schema' import { userPath } from '@etherealengine/engine/src/schemas/user/user.schema' -import { toDateTimeSql } from '@etherealengine/server-core/src/util/get-datetime-sql' +import { toDateTimeSql } from '@etherealengine/server-core/src/util/datetime-sql' import { Id } from '@feathersjs/feathers' import { NotificationService } from '../../../common/services/NotificationService' import DrawerView from '../../common/DrawerView' diff --git a/packages/instanceserver/src/NetworkFunctions.ts b/packages/instanceserver/src/NetworkFunctions.ts index 0ed641e152..bb0e17a670 100755 --- a/packages/instanceserver/src/NetworkFunctions.ts +++ b/packages/instanceserver/src/NetworkFunctions.ts @@ -55,7 +55,7 @@ import { instanceAuthorizedUserPath } from '@etherealengine/engine/src/schemas/n import { inviteCodeLookupPath } from '@etherealengine/engine/src/schemas/social/invite-code-lookup.schema' import { userKickPath } from '@etherealengine/engine/src/schemas/user/user-kick.schema' import { UserID, UserType } from '@etherealengine/engine/src/schemas/user/user.schema' -import { toDateTimeSql } from '@etherealengine/server-core/src/util/get-datetime-sql' +import { toDateTimeSql } from '@etherealengine/server-core/src/util/datetime-sql' import { InstanceServerState } from './InstanceServerState' import { SocketWebRTCServerNetwork, WebRTCTransportExtension } from './SocketWebRTCServerFunctions' diff --git a/packages/server-core/src/analytics/analytics/analytics.resolvers.ts b/packages/server-core/src/analytics/analytics/analytics.resolvers.ts index 5353f8d52a..90a1f4399a 100644 --- a/packages/server-core/src/analytics/analytics/analytics.resolvers.ts +++ b/packages/server-core/src/analytics/analytics/analytics.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { AnalyticsQuery, AnalyticsType } from '@etherealengine/engine/src/schemas/analytics/analytics.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const analyticsResolver = resolve({}) +export const analyticsResolver = resolve({ + createdAt: virtual(async (analytics) => fromDateTimeSql(analytics.createdAt)), + updatedAt: virtual(async (analytics) => fromDateTimeSql(analytics.updatedAt)) +}) export const analyticsExternalResolver = resolve({}) diff --git a/packages/server-core/src/analytics/analytics/analytics.seed.ts b/packages/server-core/src/analytics/analytics/analytics.seed.ts index 80d74141a5..42bec8f27a 100644 --- a/packages/server-core/src/analytics/analytics/analytics.seed.ts +++ b/packages/server-core/src/analytics/analytics/analytics.seed.ts @@ -29,7 +29,7 @@ import { v4 } from 'uuid' import { analyticsPath, AnalyticsType } from '@etherealengine/engine/src/schemas/analytics/analytics.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/bot/bot-command/bot-command.resolvers.ts b/packages/server-core/src/bot/bot-command/bot-command.resolvers.ts index 57f6aefd46..fe6a34d5c0 100644 --- a/packages/server-core/src/bot/bot-command/bot-command.resolvers.ts +++ b/packages/server-core/src/bot/bot-command/bot-command.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { BotCommandQuery, BotCommandType } from '@etherealengine/engine/src/schemas/bot/bot-command.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const botCommandResolver = resolve({}) +export const botCommandResolver = resolve({ + createdAt: virtual(async (botCommand) => fromDateTimeSql(botCommand.createdAt)), + updatedAt: virtual(async (botCommand) => fromDateTimeSql(botCommand.updatedAt)) +}) export const botCommandExternalResolver = resolve({}) diff --git a/packages/server-core/src/bot/bot/bot.resolvers.ts b/packages/server-core/src/bot/bot/bot.resolvers.ts index ee75efa31f..09c1a3981a 100644 --- a/packages/server-core/src/bot/bot/bot.resolvers.ts +++ b/packages/server-core/src/bot/bot/bot.resolvers.ts @@ -37,7 +37,7 @@ import { } from '@etherealengine/engine/src/schemas/bot/bot-command.schema' import { InstanceType, instancePath } from '@etherealengine/engine/src/schemas/networking/instance.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' import { botCommandDataResolver } from '../bot-command/bot-command.resolvers' export const botResolver = resolve({}) @@ -65,7 +65,9 @@ export const botExternalResolver = resolve({ })) as BotCommandType[] return botCommands } - }) + }), + createdAt: virtual(async (bot) => fromDateTimeSql(bot.createdAt)), + updatedAt: virtual(async (bot) => fromDateTimeSql(bot.updatedAt)) }) export const botDataResolver = resolve({ diff --git a/packages/server-core/src/cluster/build-status/build-status.resolvers.ts b/packages/server-core/src/cluster/build-status/build-status.resolvers.ts index b8a42835a6..f8a5fb1411 100644 --- a/packages/server-core/src/cluster/build-status/build-status.resolvers.ts +++ b/packages/server-core/src/cluster/build-status/build-status.resolvers.ts @@ -24,14 +24,17 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { BuildStatusQuery, BuildStatusType } from '@etherealengine/engine/src/schemas/cluster/build-status.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const buildStatusResolver = resolve({}) +export const buildStatusResolver = resolve({ + createdAt: virtual(async (buildStatus) => fromDateTimeSql(buildStatus.createdAt)), + updatedAt: virtual(async (buildStatus) => fromDateTimeSql(buildStatus.updatedAt)) +}) export const buildStatusExternalResolver = resolve({}) diff --git a/packages/server-core/src/matchmaking/match-instance/match-instance.resolvers.ts b/packages/server-core/src/matchmaking/match-instance/match-instance.resolvers.ts index 50394595d5..b33068788a 100644 --- a/packages/server-core/src/matchmaking/match-instance/match-instance.resolvers.ts +++ b/packages/server-core/src/matchmaking/match-instance/match-instance.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/matchmaking/match-instance.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const matchInstanceResolver = resolve({}) +export const matchInstanceResolver = resolve({ + createdAt: virtual(async (matchInstance) => fromDateTimeSql(matchInstance.createdAt)), + updatedAt: virtual(async (matchInstance) => fromDateTimeSql(matchInstance.updatedAt)) +}) export const matchInstanceExternalResolver = resolve({}) diff --git a/packages/server-core/src/matchmaking/match-ticket/match-ticket.resolvers.ts b/packages/server-core/src/matchmaking/match-ticket/match-ticket.resolvers.ts index 01ebfa66df..2015e55ecf 100644 --- a/packages/server-core/src/matchmaking/match-ticket/match-ticket.resolvers.ts +++ b/packages/server-core/src/matchmaking/match-ticket/match-ticket.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { MatchTicketQuery, MatchTicketType } from '@etherealengine/matchmaking/src/match-ticket.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const matchTicketResolver = resolve({}) +export const matchTicketResolver = resolve({ + createdAt: virtual(async (matchTicket) => (matchTicket.createdAt ? fromDateTimeSql(matchTicket.createdAt) : '')), + updatedAt: virtual(async (matchTicket) => (matchTicket.updatedAt ? fromDateTimeSql(matchTicket.updatedAt) : '')) +}) export const matchTicketExternalResolver = resolve({}) diff --git a/packages/server-core/src/matchmaking/match-user/match-user.resolvers.ts b/packages/server-core/src/matchmaking/match-user/match-user.resolvers.ts index c14810db68..ae9df8f11f 100644 --- a/packages/server-core/src/matchmaking/match-user/match-user.resolvers.ts +++ b/packages/server-core/src/matchmaking/match-user/match-user.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { MatchUserQuery, MatchUserType } from '@etherealengine/engine/src/schemas/matchmaking/match-user.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const matchUserResolver = resolve({}) +export const matchUserResolver = resolve({ + createdAt: virtual(async (matchUser) => fromDateTimeSql(matchUser.createdAt)), + updatedAt: virtual(async (matchUser) => fromDateTimeSql(matchUser.updatedAt)) +}) export const matchUserExternalResolver = resolve({}) diff --git a/packages/server-core/src/media/static-resource/static-resource.resolvers.ts b/packages/server-core/src/media/static-resource/static-resource.resolvers.ts index da67096b49..a52a6c08bf 100644 --- a/packages/server-core/src/media/static-resource/static-resource.resolvers.ts +++ b/packages/server-core/src/media/static-resource/static-resource.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -34,9 +34,7 @@ import { } from '@etherealengine/engine/src/schemas/media/static-resource.schema' import type { HookContext } from '@etherealengine/server-core/declarations' import { nanoid } from 'nanoid' -import { getDateTimeSql } from '../../util/get-datetime-sql' - -export const staticResourceResolver = resolve({}) +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const staticResourceDbToSchema = (rawData: StaticResourceDatabaseType): StaticResourceType => { let metadata = JSON.parse(rawData.metadata) as any @@ -71,6 +69,11 @@ export const staticResourceDbToSchema = (rawData: StaticResourceDatabaseType): S } } +export const staticResourceResolver = resolve({ + createdAt: virtual(async (staticResource) => fromDateTimeSql(staticResource.createdAt)), + updatedAt: virtual(async (staticResource) => fromDateTimeSql(staticResource.updatedAt)) +}) + export const staticResourceExternalResolver = resolve( {}, { diff --git a/packages/server-core/src/networking/instance-attendance/instance-attendance.resolvers.ts b/packages/server-core/src/networking/instance-attendance/instance-attendance.resolvers.ts index 772e2edf21..f7f85607f4 100644 --- a/packages/server-core/src/networking/instance-attendance/instance-attendance.resolvers.ts +++ b/packages/server-core/src/networking/instance-attendance/instance-attendance.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/networking/instance-attendance.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const instanceAttendanceResolver = resolve({}) +export const instanceAttendanceResolver = resolve({ + createdAt: virtual(async (instanceAttendance) => fromDateTimeSql(instanceAttendance.createdAt)), + updatedAt: virtual(async (instanceAttendance) => fromDateTimeSql(instanceAttendance.updatedAt)) +}) export const instanceAttendanceExternalResolver = resolve({}) diff --git a/packages/server-core/src/networking/instance-authorized-user/instance-authorized-user.resolvers.ts b/packages/server-core/src/networking/instance-authorized-user/instance-authorized-user.resolvers.ts index d169d47f46..873862dc6a 100644 --- a/packages/server-core/src/networking/instance-authorized-user/instance-authorized-user.resolvers.ts +++ b/packages/server-core/src/networking/instance-authorized-user/instance-authorized-user.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/networking/instance-authorized-user.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const instanceAuthorizedUserResolver = resolve({}) +export const instanceAuthorizedUserResolver = resolve({ + createdAt: virtual(async (instanceAuthorizedUser) => fromDateTimeSql(instanceAuthorizedUser.createdAt)), + updatedAt: virtual(async (instanceAuthorizedUser) => fromDateTimeSql(instanceAuthorizedUser.updatedAt)) +}) export const instanceAuthorizedUserExternalResolver = resolve({}) diff --git a/packages/server-core/src/projects/project-permission/project-permission.resolvers.ts b/packages/server-core/src/projects/project-permission/project-permission.resolvers.ts index bb3d2d195b..0780aa99d4 100644 --- a/packages/server-core/src/projects/project-permission/project-permission.resolvers.ts +++ b/packages/server-core/src/projects/project-permission/project-permission.resolvers.ts @@ -34,7 +34,7 @@ import { import type { HookContext } from '@etherealengine/server-core/declarations' import { userPath } from '@etherealengine/engine/src/schemas/user/user.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const projectPermissionResolver = resolve({ user: virtual(async (projectPermission, context) => { @@ -42,7 +42,9 @@ export const projectPermissionResolver = resolve fromDateTimeSql(projectPermission.createdAt)), + updatedAt: virtual(async (projectPermission) => fromDateTimeSql(projectPermission.updatedAt)) }) export const projectPermissionExternalResolver = resolve({}) diff --git a/packages/server-core/src/recording/recording-resource/recording-resource.resolvers.ts b/packages/server-core/src/recording/recording-resource/recording-resource.resolvers.ts index aa28271979..003e7b5b40 100644 --- a/packages/server-core/src/recording/recording-resource/recording-resource.resolvers.ts +++ b/packages/server-core/src/recording/recording-resource/recording-resource.resolvers.ts @@ -34,13 +34,15 @@ import { RecordingResourceQuery, RecordingResourceType } from '@etherealengine/engine/src/schemas/recording/recording-resource.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const recordingResourceResolver = resolve({ staticResource: virtual(async (recordingResource, context) => { const staticResource = await context.app.service(staticResourcePath).get(recordingResource.staticResourceId) return staticResource - }) + }), + createdAt: virtual(async (recordingResource) => fromDateTimeSql(recordingResource.createdAt)), + updatedAt: virtual(async (recordingResource) => fromDateTimeSql(recordingResource.updatedAt)) }) export const recordingResourceExternalResolver = resolve({}) diff --git a/packages/server-core/src/recording/recording/recording.resolvers.ts b/packages/server-core/src/recording/recording/recording.resolvers.ts index 869e3b2531..158c7f8976 100644 --- a/packages/server-core/src/recording/recording/recording.resolvers.ts +++ b/packages/server-core/src/recording/recording/recording.resolvers.ts @@ -38,7 +38,7 @@ import { RecordingType } from '@etherealengine/engine/src/schemas/recording/recording.schema' import { userPath } from '@etherealengine/engine/src/schemas/user/user.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const recordingDbToSchema = (rawData: RecordingDatabaseType): RecordingType => { let schema = JSON.parse(rawData.schema) as RecordingSchemaType @@ -72,7 +72,9 @@ export const recordingResolver = resolve({ const user = await context.app.service(userPath)._get(recording.userId) return user.name - }) + }), + createdAt: virtual(async (recording) => fromDateTimeSql(recording.createdAt)), + updatedAt: virtual(async (recording) => fromDateTimeSql(recording.updatedAt)) }) export const recordingExternalResolver = resolve( diff --git a/packages/server-core/src/route/route/route.resolvers.ts b/packages/server-core/src/route/route/route.resolvers.ts index 1cf5121df2..e7e2c5e1b8 100644 --- a/packages/server-core/src/route/route/route.resolvers.ts +++ b/packages/server-core/src/route/route/route.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { RouteQuery, RouteType } from '@etherealengine/engine/src/schemas/route/route.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const routeResolver = resolve({}) +export const routeResolver = resolve({ + createdAt: virtual(async (route) => fromDateTimeSql(route.createdAt)), + updatedAt: virtual(async (route) => fromDateTimeSql(route.updatedAt)) +}) export const routeExternalResolver = resolve({}) diff --git a/packages/server-core/src/route/route/route.seed.ts b/packages/server-core/src/route/route/route.seed.ts index 4f78e8e9a8..afce4fc3f6 100644 --- a/packages/server-core/src/route/route/route.seed.ts +++ b/packages/server-core/src/route/route/route.seed.ts @@ -29,7 +29,7 @@ import { v4 } from 'uuid' import { routePath, RouteType } from '@etherealengine/engine/src/schemas/route/route.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/scope/scope-type/scope-type.resolvers.ts b/packages/server-core/src/scope/scope-type/scope-type.resolvers.ts index b2208658e9..7473b3ca6e 100644 --- a/packages/server-core/src/scope/scope-type/scope-type.resolvers.ts +++ b/packages/server-core/src/scope/scope-type/scope-type.resolvers.ts @@ -24,14 +24,17 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { ScopeTypeQuery, ScopeTypeType } from '@etherealengine/engine/src/schemas/scope/scope-type.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const scopeTypeResolver = resolve({}) +export const scopeTypeResolver = resolve({ + createdAt: virtual(async (scopeType) => fromDateTimeSql(scopeType.createdAt)), + updatedAt: virtual(async (scopeType) => fromDateTimeSql(scopeType.updatedAt)) +}) export const scopeTypeExternalResolver = resolve({}) diff --git a/packages/server-core/src/scope/scope-type/scope-type.seed.ts b/packages/server-core/src/scope/scope-type/scope-type.seed.ts index 67c73ba449..3fd67b8c9a 100644 --- a/packages/server-core/src/scope/scope-type/scope-type.seed.ts +++ b/packages/server-core/src/scope/scope-type/scope-type.seed.ts @@ -28,7 +28,7 @@ import { Knex } from 'knex' import { scopeTypePath, ScopeTypeType } from '@etherealengine/engine/src/schemas/scope/scope-type.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export const scopeTypeSeed = [ { diff --git a/packages/server-core/src/scope/scope/scope.resolvers.ts b/packages/server-core/src/scope/scope/scope.resolvers.ts index a3be99863f..20e3f12187 100644 --- a/packages/server-core/src/scope/scope/scope.resolvers.ts +++ b/packages/server-core/src/scope/scope/scope.resolvers.ts @@ -31,7 +31,7 @@ import { ScopeQuery, ScopeType } from '@etherealengine/engine/src/schemas/scope/ import type { HookContext } from '@etherealengine/server-core/declarations' import { userPath } from '@etherealengine/engine/src/schemas/user/user.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const scopeResolver = resolve({}) @@ -41,7 +41,9 @@ export const scopeExternalResolver = resolve({ const user = await context.app.service(userPath)._get(scope.userId) return user } - }) + }), + createdAt: virtual(async (scope) => fromDateTimeSql(scope.createdAt)), + updatedAt: virtual(async (scope) => fromDateTimeSql(scope.updatedAt)) }) export const scopeDataResolver = resolve({ diff --git a/packages/server-core/src/setting/authentication-setting/authentication-setting.resolvers.ts b/packages/server-core/src/setting/authentication-setting/authentication-setting.resolvers.ts index 3e728d821d..eba01b10dd 100644 --- a/packages/server-core/src/setting/authentication-setting/authentication-setting.resolvers.ts +++ b/packages/server-core/src/setting/authentication-setting/authentication-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -41,11 +41,9 @@ import { } from '@etherealengine/engine/src/schemas/setting/authentication-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' import { AuthenticationSettingPatch } from './../../../../engine/src/schemas/setting/authentication-setting.schema' -export const authenticationSettingResolver = resolve({}) - export const authenticationSettingSchemaToDb = (patch: AuthenticationSettingPatch) => { return { ...patch, @@ -161,6 +159,11 @@ export const authenticationDbToSchema = (rawData: AuthenticationSettingDatabaseT } } +export const authenticationSettingResolver = resolve({ + createdAt: virtual(async (authenticationSetting) => fromDateTimeSql(authenticationSetting.createdAt)), + updatedAt: virtual(async (authenticationSetting) => fromDateTimeSql(authenticationSetting.updatedAt)) +}) + export const authenticationSettingExternalResolver = resolve( {}, { diff --git a/packages/server-core/src/setting/authentication-setting/authentication-setting.seed.ts b/packages/server-core/src/setting/authentication-setting/authentication-setting.seed.ts index dd440ac14f..4f0e93101b 100644 --- a/packages/server-core/src/setting/authentication-setting/authentication-setting.seed.ts +++ b/packages/server-core/src/setting/authentication-setting/authentication-setting.seed.ts @@ -34,7 +34,7 @@ import appConfig from '@etherealengine/server-core/src/appconfig' import { identityProviderPath } from '@etherealengine/engine/src/schemas/user/identity-provider.schema' import config from '../../appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/aws-setting/aws-setting.resolvers.ts b/packages/server-core/src/setting/aws-setting/aws-setting.resolvers.ts index 8971e71252..8d2617dafb 100644 --- a/packages/server-core/src/setting/aws-setting/aws-setting.resolvers.ts +++ b/packages/server-core/src/setting/aws-setting/aws-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -38,9 +38,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/aws-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' - -export const awsSettingResolver = resolve({}) +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const awsDbToSchema = (rawData: AwsSettingDatabaseType): AwsSettingType => { let eks = JSON.parse(rawData.eks || '{}') as AwsEksType @@ -84,6 +82,11 @@ export const awsDbToSchema = (rawData: AwsSettingDatabaseType): AwsSettingType = } } +export const awsSettingResolver = resolve({ + createdAt: virtual(async (awsSetting) => fromDateTimeSql(awsSetting.createdAt)), + updatedAt: virtual(async (awsSetting) => fromDateTimeSql(awsSetting.updatedAt)) +}) + export const awsSettingExternalResolver = resolve( {}, { diff --git a/packages/server-core/src/setting/aws-setting/aws-setting.seed.ts b/packages/server-core/src/setting/aws-setting/aws-setting.seed.ts index c92a393ad5..a2051101d5 100644 --- a/packages/server-core/src/setting/aws-setting/aws-setting.seed.ts +++ b/packages/server-core/src/setting/aws-setting/aws-setting.seed.ts @@ -29,7 +29,7 @@ import { v4 } from 'uuid' import { AwsSettingDatabaseType, awsSettingPath } from '@etherealengine/engine/src/schemas/setting/aws-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/chargebee-setting/chargebee-setting.resolvers.ts b/packages/server-core/src/setting/chargebee-setting/chargebee-setting.resolvers.ts index eb414f6003..5261e8da98 100644 --- a/packages/server-core/src/setting/chargebee-setting/chargebee-setting.resolvers.ts +++ b/packages/server-core/src/setting/chargebee-setting/chargebee-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/setting/chargebee-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const chargebeeSettingResolver = resolve({}) +export const chargebeeSettingResolver = resolve({ + createdAt: virtual(async (chargebeeSetting) => fromDateTimeSql(chargebeeSetting.createdAt)), + updatedAt: virtual(async (chargebeeSetting) => fromDateTimeSql(chargebeeSetting.updatedAt)) +}) export const chargebeeSettingExternalResolver = resolve({}) diff --git a/packages/server-core/src/setting/chargebee-setting/chargebee-setting.seed.ts b/packages/server-core/src/setting/chargebee-setting/chargebee-setting.seed.ts index 377b8efe80..27c6be10a5 100644 --- a/packages/server-core/src/setting/chargebee-setting/chargebee-setting.seed.ts +++ b/packages/server-core/src/setting/chargebee-setting/chargebee-setting.seed.ts @@ -32,7 +32,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/chargebee-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/client-setting/client-setting.resolvers.ts b/packages/server-core/src/setting/client-setting/client-setting.resolvers.ts index d02164ecf6..11be197da8 100644 --- a/packages/server-core/src/setting/client-setting/client-setting.resolvers.ts +++ b/packages/server-core/src/setting/client-setting/client-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -36,9 +36,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/client-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' - -export const clientSettingResolver = resolve({}) +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const clientDbToSchema = (rawData: ClientSettingDatabaseType): ClientSettingType => { let appSocialLinks = JSON.parse(rawData.appSocialLinks) as ClientSocialLinkType[] @@ -73,6 +71,11 @@ export const clientDbToSchema = (rawData: ClientSettingDatabaseType): ClientSett } } +export const clientSettingResolver = resolve({ + createdAt: virtual(async (clientSetting) => fromDateTimeSql(clientSetting.createdAt)), + updatedAt: virtual(async (clientSetting) => fromDateTimeSql(clientSetting.updatedAt)) +}) + export const clientSettingExternalResolver = resolve( {}, { diff --git a/packages/server-core/src/setting/client-setting/client-setting.seed.ts b/packages/server-core/src/setting/client-setting/client-setting.seed.ts index 03cc240003..b0f2499a45 100644 --- a/packages/server-core/src/setting/client-setting/client-setting.seed.ts +++ b/packages/server-core/src/setting/client-setting/client-setting.seed.ts @@ -33,7 +33,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/client-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/coil-setting/coil-setting.resolvers.ts b/packages/server-core/src/setting/coil-setting/coil-setting.resolvers.ts index de14142109..55304cac60 100644 --- a/packages/server-core/src/setting/coil-setting/coil-setting.resolvers.ts +++ b/packages/server-core/src/setting/coil-setting/coil-setting.resolvers.ts @@ -24,16 +24,19 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { CoilSettingQuery, CoilSettingType } from '@etherealengine/engine/src/schemas/setting/coil-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' import { UserType } from '@etherealengine/engine/src/schemas/user/user.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const coilSettingResolver = resolve({}) +export const coilSettingResolver = resolve({ + createdAt: virtual(async (coilSetting) => fromDateTimeSql(coilSetting.createdAt)), + updatedAt: virtual(async (coilSetting) => fromDateTimeSql(coilSetting.updatedAt)) +}) const resolveForAdmin = async (value: string | undefined, query: CoilSettingType, context: HookContext) => { const loggedInUser = context!.params.user as UserType diff --git a/packages/server-core/src/setting/coil-setting/coil-setting.seed.ts b/packages/server-core/src/setting/coil-setting/coil-setting.seed.ts index 928f6850a9..b94213506e 100644 --- a/packages/server-core/src/setting/coil-setting/coil-setting.seed.ts +++ b/packages/server-core/src/setting/coil-setting/coil-setting.seed.ts @@ -29,7 +29,7 @@ import { v4 } from 'uuid' import { coilSettingPath, CoilSettingType } from '@etherealengine/engine/src/schemas/setting/coil-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/email-setting/email-setting.resolvers.ts b/packages/server-core/src/setting/email-setting/email-setting.resolvers.ts index 7cad75f82f..910658f920 100644 --- a/packages/server-core/src/setting/email-setting/email-setting.resolvers.ts +++ b/packages/server-core/src/setting/email-setting/email-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -37,9 +37,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/email-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' - -export const emailSettingResolver = resolve({}) +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const emailDbToSchema = (rawData: EmailSettingDatabaseType): EmailSettingType => { let smtp = JSON.parse(rawData.smtp) as EmailSmtpType @@ -70,6 +68,11 @@ export const emailDbToSchema = (rawData: EmailSettingDatabaseType): EmailSetting } } +export const emailSettingResolver = resolve({ + createdAt: virtual(async (emailSetting) => fromDateTimeSql(emailSetting.createdAt)), + updatedAt: virtual(async (emailSetting) => fromDateTimeSql(emailSetting.updatedAt)) +}) + export const emailSettingExternalResolver = resolve( {}, { diff --git a/packages/server-core/src/setting/email-setting/email-setting.seed.ts b/packages/server-core/src/setting/email-setting/email-setting.seed.ts index 4d5c84b439..b9574b38a2 100644 --- a/packages/server-core/src/setting/email-setting/email-setting.seed.ts +++ b/packages/server-core/src/setting/email-setting/email-setting.seed.ts @@ -32,7 +32,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/email-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/helm-setting/helm-setting.resolvers.ts b/packages/server-core/src/setting/helm-setting/helm-setting.resolvers.ts index 052ec0625a..15f12c9b04 100644 --- a/packages/server-core/src/setting/helm-setting/helm-setting.resolvers.ts +++ b/packages/server-core/src/setting/helm-setting/helm-setting.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { HelmSettingQuery, HelmSettingType } from '@etherealengine/engine/src/schemas/setting/helm-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const helmSettingResolver = resolve({}) +export const helmSettingResolver = resolve({ + createdAt: virtual(async (helmSetting) => fromDateTimeSql(helmSetting.createdAt)), + updatedAt: virtual(async (helmSetting) => fromDateTimeSql(helmSetting.updatedAt)) +}) export const helmSettingExternalResolver = resolve({}) diff --git a/packages/server-core/src/setting/helm-setting/helm-setting.seed.ts b/packages/server-core/src/setting/helm-setting/helm-setting.seed.ts index 3dc240f9d9..ec48ef99a5 100644 --- a/packages/server-core/src/setting/helm-setting/helm-setting.seed.ts +++ b/packages/server-core/src/setting/helm-setting/helm-setting.seed.ts @@ -32,7 +32,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/helm-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/instance-server-setting/instance-server-setting.resolvers.ts b/packages/server-core/src/setting/instance-server-setting/instance-server-setting.resolvers.ts index 13eabb6a18..d885195f03 100644 --- a/packages/server-core/src/setting/instance-server-setting/instance-server-setting.resolvers.ts +++ b/packages/server-core/src/setting/instance-server-setting/instance-server-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/setting/instance-server-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const instanceServerSettingResolver = resolve({}) +export const instanceServerSettingResolver = resolve({ + createdAt: virtual(async (instanceServerSetting) => fromDateTimeSql(instanceServerSetting.createdAt)), + updatedAt: virtual(async (instanceServerSetting) => fromDateTimeSql(instanceServerSetting.updatedAt)) +}) export const instanceServerSettingExternalResolver = resolve({}) diff --git a/packages/server-core/src/setting/instance-server-setting/instance-server-setting.seed.ts b/packages/server-core/src/setting/instance-server-setting/instance-server-setting.seed.ts index 3343cb81fd..a39a79e950 100644 --- a/packages/server-core/src/setting/instance-server-setting/instance-server-setting.seed.ts +++ b/packages/server-core/src/setting/instance-server-setting/instance-server-setting.seed.ts @@ -32,7 +32,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/instance-server-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/redis-setting/redis-setting.resolvers.ts b/packages/server-core/src/setting/redis-setting/redis-setting.resolvers.ts index 890df7c4fc..94e01d020a 100644 --- a/packages/server-core/src/setting/redis-setting/redis-setting.resolvers.ts +++ b/packages/server-core/src/setting/redis-setting/redis-setting.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { RedisSettingQuery, RedisSettingType } from '@etherealengine/engine/src/schemas/setting/redis-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const redisSettingResolver = resolve({}) +export const redisSettingResolver = resolve({ + createdAt: virtual(async (redisSetting) => fromDateTimeSql(redisSetting.createdAt)), + updatedAt: virtual(async (redisSetting) => fromDateTimeSql(redisSetting.updatedAt)) +}) export const redisSettingExternalResolver = resolve({}) diff --git a/packages/server-core/src/setting/redis-setting/redis-setting.seed.ts b/packages/server-core/src/setting/redis-setting/redis-setting.seed.ts index 264510d27c..202f957b33 100644 --- a/packages/server-core/src/setting/redis-setting/redis-setting.seed.ts +++ b/packages/server-core/src/setting/redis-setting/redis-setting.seed.ts @@ -29,7 +29,7 @@ import { v4 } from 'uuid' import { redisSettingPath, RedisSettingType } from '@etherealengine/engine/src/schemas/setting/redis-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/setting/server-setting/server-setting.resolvers.ts b/packages/server-core/src/setting/server-setting/server-setting.resolvers.ts index 689d89540e..b696e4529e 100644 --- a/packages/server-core/src/setting/server-setting/server-setting.resolvers.ts +++ b/packages/server-core/src/setting/server-setting/server-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -35,9 +35,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/server-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' - -export const serverSettingResolver = resolve({}) +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const serverDbToSchema = (rawData: ServerSettingDatabaseType): ServerSettingType => { let hub = JSON.parse(rawData.hub) as ServerHubType @@ -54,6 +52,11 @@ export const serverDbToSchema = (rawData: ServerSettingDatabaseType): ServerSett } } +export const serverSettingResolver = resolve({ + createdAt: virtual(async (serverSetting) => fromDateTimeSql(serverSetting.createdAt)), + updatedAt: virtual(async (serverSetting) => fromDateTimeSql(serverSetting.updatedAt)) +}) + export const serverSettingExternalResolver = resolve( {}, { diff --git a/packages/server-core/src/setting/server-setting/server-setting.seed.ts b/packages/server-core/src/setting/server-setting/server-setting.seed.ts index f0eeb39530..c38745c6d0 100644 --- a/packages/server-core/src/setting/server-setting/server-setting.seed.ts +++ b/packages/server-core/src/setting/server-setting/server-setting.seed.ts @@ -35,7 +35,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/server-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' const kubernetesEnabled = process.env.KUBERNETES === 'true' diff --git a/packages/server-core/src/setting/task-server-setting/task-server-setting.resolvers.ts b/packages/server-core/src/setting/task-server-setting/task-server-setting.resolvers.ts index ae0ac51b07..3d5a3caa16 100644 --- a/packages/server-core/src/setting/task-server-setting/task-server-setting.resolvers.ts +++ b/packages/server-core/src/setting/task-server-setting/task-server-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/setting/task-server-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const taskServerSettingResolver = resolve({}) +export const taskServerSettingResolver = resolve({ + createdAt: virtual(async (taskServerSetting) => fromDateTimeSql(taskServerSetting.createdAt)), + updatedAt: virtual(async (taskServerSetting) => fromDateTimeSql(taskServerSetting.updatedAt)) +}) export const taskServerSettingExternalResolver = resolve({}) diff --git a/packages/server-core/src/setting/task-server-setting/task-server-setting.seed.ts b/packages/server-core/src/setting/task-server-setting/task-server-setting.seed.ts index e3e508f65e..18e4847ce4 100644 --- a/packages/server-core/src/setting/task-server-setting/task-server-setting.seed.ts +++ b/packages/server-core/src/setting/task-server-setting/task-server-setting.seed.ts @@ -32,7 +32,7 @@ import { } from '@etherealengine/engine/src/schemas/setting/task-server-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/social/invite/invite.resolvers.ts b/packages/server-core/src/social/invite/invite.resolvers.ts index ea446ef586..e44094467c 100644 --- a/packages/server-core/src/social/invite/invite.resolvers.ts +++ b/packages/server-core/src/social/invite/invite.resolvers.ts @@ -37,9 +37,7 @@ import type { HookContext } from '@etherealengine/server-core/declarations' import { ChannelID } from '@etherealengine/common/src/dbmodels/Channel' import { userPath } from '@etherealengine/engine/src/schemas/user/user.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' - -export const inviteResolver = resolve({}) +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const inviteDbToSchema = (rawData: InviteDatabaseType): InviteType => { let spawnDetails = JSON.parse(rawData.spawnDetails) as SpawnDetailsType @@ -56,6 +54,13 @@ export const inviteDbToSchema = (rawData: InviteDatabaseType): InviteType => { } } +export const inviteResolver = resolve({ + createdAt: virtual(async (invite) => fromDateTimeSql(invite.createdAt)), + updatedAt: virtual(async (invite) => fromDateTimeSql(invite.updatedAt)), + startTime: virtual(async (invite) => (invite.startTime ? fromDateTimeSql(invite.startTime) : '')), + endTime: virtual(async (invite) => (invite.endTime ? fromDateTimeSql(invite.endTime) : '')) +}) + export const inviteExternalResolver = resolve( { user: virtual(async (invite, context) => { diff --git a/packages/server-core/src/social/location-admin/location-admin.resolvers.ts b/packages/server-core/src/social/location-admin/location-admin.resolvers.ts index 68b2f9b909..7e108dde4d 100644 --- a/packages/server-core/src/social/location-admin/location-admin.resolvers.ts +++ b/packages/server-core/src/social/location-admin/location-admin.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { LocationAdminQuery, LocationAdminType } from '@etherealengine/engine/src/schemas/social/location-admin.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const locationAdminResolver = resolve({}) +export const locationAdminResolver = resolve({ + createdAt: virtual(async (locationAdmin) => fromDateTimeSql(locationAdmin.createdAt)), + updatedAt: virtual(async (locationAdmin) => fromDateTimeSql(locationAdmin.updatedAt)) +}) export const locationAdminExternalResolver = resolve({}) diff --git a/packages/server-core/src/social/location-authorized-user/location-authorized-user.resolvers.ts b/packages/server-core/src/social/location-authorized-user/location-authorized-user.resolvers.ts index 8f20d724e8..9638bf0384 100644 --- a/packages/server-core/src/social/location-authorized-user/location-authorized-user.resolvers.ts +++ b/packages/server-core/src/social/location-authorized-user/location-authorized-user.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/social/location-authorized-user.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const locationAuthorizedUserResolver = resolve({}) +export const locationAuthorizedUserResolver = resolve({ + createdAt: virtual(async (locationAuthorizedUser) => fromDateTimeSql(locationAuthorizedUser.createdAt)), + updatedAt: virtual(async (locationAuthorizedUser) => fromDateTimeSql(locationAuthorizedUser.updatedAt)) +}) export const locationAuthorizedUserExternalResolver = resolve({}) diff --git a/packages/server-core/src/social/location-ban/location-ban.resolvers.ts b/packages/server-core/src/social/location-ban/location-ban.resolvers.ts index 3c090d3a57..f54eb930e1 100644 --- a/packages/server-core/src/social/location-ban/location-ban.resolvers.ts +++ b/packages/server-core/src/social/location-ban/location-ban.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { LocationBanQuery, LocationBanType } from '@etherealengine/engine/src/schemas/social/location-ban.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const locationBanResolver = resolve({}) +export const locationBanResolver = resolve({ + createdAt: virtual(async (locationBan) => fromDateTimeSql(locationBan.createdAt)), + updatedAt: virtual(async (locationBan) => fromDateTimeSql(locationBan.updatedAt)) +}) export const locationBanExternalResolver = resolve({}) diff --git a/packages/server-core/src/social/location-setting/location-setting.resolvers.ts b/packages/server-core/src/social/location-setting/location-setting.resolvers.ts index 4cc556e934..2366b98830 100644 --- a/packages/server-core/src/social/location-setting/location-setting.resolvers.ts +++ b/packages/server-core/src/social/location-setting/location-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/social/location-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const locationSettingResolver = resolve({}) +export const locationSettingResolver = resolve({ + createdAt: virtual(async (locationSetting) => fromDateTimeSql(locationSetting.createdAt)), + updatedAt: virtual(async (locationSetting) => fromDateTimeSql(locationSetting.updatedAt)) +}) export const locationSettingExternalResolver = resolve({}) diff --git a/packages/server-core/src/social/location-setting/location-setting.seed.ts b/packages/server-core/src/social/location-setting/location-setting.seed.ts index c1bf80e1f0..4173668dde 100755 --- a/packages/server-core/src/social/location-setting/location-setting.seed.ts +++ b/packages/server-core/src/social/location-setting/location-setting.seed.ts @@ -31,7 +31,7 @@ import { } from '@etherealengine/engine/src/schemas/social/location-setting.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/social/location/location.resolvers.ts b/packages/server-core/src/social/location/location.resolvers.ts index ee892fde7a..d3250ac465 100644 --- a/packages/server-core/src/social/location/location.resolvers.ts +++ b/packages/server-core/src/social/location/location.resolvers.ts @@ -36,7 +36,7 @@ import type { HookContext } from '@etherealengine/server-core/declarations' import { LocationAuthorizedUserType } from '@etherealengine/engine/src/schemas/social/location-authorized-user.schema' import { LocationBanType, locationBanPath } from '@etherealengine/engine/src/schemas/social/location-ban.schema' import { UserID } from '@etherealengine/engine/src/schemas/user/user.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' import { LocationParams } from './location.class' export const locationResolver = resolve({ @@ -89,7 +89,9 @@ export const locationResolver = resolve({ paginate: false })) as LocationBanType[] return locationBan - }) + }), + createdAt: virtual(async (location) => fromDateTimeSql(location.createdAt)), + updatedAt: virtual(async (location) => fromDateTimeSql(location.updatedAt)) }) export const locationExternalResolver = resolve({ diff --git a/packages/server-core/src/social/location/location.seed.ts b/packages/server-core/src/social/location/location.seed.ts index 7800bf5db8..8fd2fe48df 100755 --- a/packages/server-core/src/social/location/location.seed.ts +++ b/packages/server-core/src/social/location/location.seed.ts @@ -28,7 +28,7 @@ import { Knex } from 'knex' import { LocationDatabaseType, locationPath } from '@etherealengine/engine/src/schemas/social/location.schema' import appConfig from '@etherealengine/server-core/src/appconfig' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' export async function seed(knex: Knex): Promise { const { testEnabled } = appConfig diff --git a/packages/server-core/src/user/avatar/avatar.resolvers.ts b/packages/server-core/src/user/avatar/avatar.resolvers.ts index d4bf002460..7025e5d6d4 100644 --- a/packages/server-core/src/user/avatar/avatar.resolvers.ts +++ b/packages/server-core/src/user/avatar/avatar.resolvers.ts @@ -31,7 +31,7 @@ import { staticResourcePath } from '@etherealengine/engine/src/schemas/media/sta import { AvatarDatabaseType, AvatarQuery, AvatarType } from '@etherealengine/engine/src/schemas/user/avatar.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const avatarResolver = resolve({ modelResource: virtual(async (avatar, context) => { @@ -45,7 +45,9 @@ export const avatarResolver = resolve({ const thumbnailStaticResource = await context.app.service(staticResourcePath).get(avatar.thumbnailResourceId) return thumbnailStaticResource } - }) + }), + createdAt: virtual(async (avatar) => fromDateTimeSql(avatar.createdAt)), + updatedAt: virtual(async (avatar) => fromDateTimeSql(avatar.updatedAt)) }) export const avatarExternalResolver = resolve({}) diff --git a/packages/server-core/src/user/github-repo-access/github-repo-access.resolvers.ts b/packages/server-core/src/user/github-repo-access/github-repo-access.resolvers.ts index a4e671c70f..4908a7a9d0 100644 --- a/packages/server-core/src/user/github-repo-access/github-repo-access.resolvers.ts +++ b/packages/server-core/src/user/github-repo-access/github-repo-access.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -33,9 +33,12 @@ import { } from '@etherealengine/engine/src/schemas/user/github-repo-access.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const githubRepoAccessResolver = resolve({}) +export const githubRepoAccessResolver = resolve({ + createdAt: virtual(async (githubRepoAccess) => fromDateTimeSql(githubRepoAccess.createdAt)), + updatedAt: virtual(async (githubRepoAccess) => fromDateTimeSql(githubRepoAccess.updatedAt)) +}) export const githubRepoAccessExternalResolver = resolve({}) diff --git a/packages/server-core/src/user/identity-provider/identity-provider.resolvers.ts b/packages/server-core/src/user/identity-provider/identity-provider.resolvers.ts index f8603f78a8..1993ece654 100644 --- a/packages/server-core/src/user/identity-provider/identity-provider.resolvers.ts +++ b/packages/server-core/src/user/identity-provider/identity-provider.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -34,9 +34,12 @@ import { import type { HookContext } from '@etherealengine/server-core/declarations' import { UserID } from '@etherealengine/engine/src/schemas/user/user.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const identityProviderResolver = resolve({}) +export const identityProviderResolver = resolve({ + createdAt: virtual(async (identityProvider) => fromDateTimeSql(identityProvider.createdAt)), + updatedAt: virtual(async (identityProvider) => fromDateTimeSql(identityProvider.updatedAt)) +}) export const identityProviderExternalResolver = resolve({}) diff --git a/packages/server-core/src/user/login-token/login-token.class.ts b/packages/server-core/src/user/login-token/login-token.class.ts index cce695ac5f..86ed1b01a2 100755 --- a/packages/server-core/src/user/login-token/login-token.class.ts +++ b/packages/server-core/src/user/login-token/login-token.class.ts @@ -39,7 +39,7 @@ import { import { Application } from '../../../declarations' import { RootParams } from '../../api/root-params' -import { toDateTimeSql } from '../../util/get-datetime-sql' +import { toDateTimeSql } from '../../util/datetime-sql' // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface LoginTokenParams extends RootParams {} diff --git a/packages/server-core/src/user/login-token/login-token.resolvers.ts b/packages/server-core/src/user/login-token/login-token.resolvers.ts index 72cbaa5abe..8cc1688a75 100644 --- a/packages/server-core/src/user/login-token/login-token.resolvers.ts +++ b/packages/server-core/src/user/login-token/login-token.resolvers.ts @@ -24,15 +24,19 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { LoginTokenQuery, LoginTokenType } from '@etherealengine/engine/src/schemas/user/login-token.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const loginTokenResolver = resolve({}) +export const loginTokenResolver = resolve({ + expiresAt: virtual(async (loginToken) => fromDateTimeSql(loginToken.expiresAt)), + createdAt: virtual(async (loginToken) => fromDateTimeSql(loginToken.createdAt)), + updatedAt: virtual(async (loginToken) => fromDateTimeSql(loginToken.updatedAt)) +}) export const loginTokenExternalResolver = resolve({}) diff --git a/packages/server-core/src/user/user-api-key/user-api-key.resolvers.ts b/packages/server-core/src/user/user-api-key/user-api-key.resolvers.ts index b010dee7ae..81fb74afc6 100644 --- a/packages/server-core/src/user/user-api-key/user-api-key.resolvers.ts +++ b/packages/server-core/src/user/user-api-key/user-api-key.resolvers.ts @@ -24,15 +24,18 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { UserApiKeyQuery, UserApiKeyType } from '@etherealengine/engine/src/schemas/user/user-api-key.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const userApiKeyResolver = resolve({}) +export const userApiKeyResolver = resolve({ + createdAt: virtual(async (userApiKey) => fromDateTimeSql(userApiKey.createdAt)), + updatedAt: virtual(async (userApiKey) => fromDateTimeSql(userApiKey.updatedAt)) +}) export const userApiKeyExternalResolver = resolve({}) diff --git a/packages/server-core/src/user/user-kick/user-kick.resolvers.ts b/packages/server-core/src/user/user-kick/user-kick.resolvers.ts index 9559a7f94b..7b6df4d374 100644 --- a/packages/server-core/src/user/user-kick/user-kick.resolvers.ts +++ b/packages/server-core/src/user/user-kick/user-kick.resolvers.ts @@ -24,15 +24,19 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { UserKickID, UserKickQuery, UserKickType } from '@etherealengine/engine/src/schemas/user/user-kick.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' -export const userKickResolver = resolve({}) +export const userKickResolver = resolve({ + duration: virtual(async (userKick) => fromDateTimeSql(userKick.duration)), + createdAt: virtual(async (userKick) => fromDateTimeSql(userKick.createdAt)), + updatedAt: virtual(async (userKick) => fromDateTimeSql(userKick.updatedAt)) +}) export const userKickExternalResolver = resolve({}) diff --git a/packages/server-core/src/user/user-relationship/user-relationship.class.ts b/packages/server-core/src/user/user-relationship/user-relationship.class.ts index 3b92858bad..f58f02ef33 100755 --- a/packages/server-core/src/user/user-relationship/user-relationship.class.ts +++ b/packages/server-core/src/user/user-relationship/user-relationship.class.ts @@ -44,7 +44,7 @@ import { import { Knex } from 'knex' import { v4 } from 'uuid' import { RootParams } from '../../api/root-params' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { getDateTimeSql } from '../../util/datetime-sql' // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface UserRelationshipParams extends RootParams {} diff --git a/packages/server-core/src/user/user-relationship/user-relationship.resolvers.ts b/packages/server-core/src/user/user-relationship/user-relationship.resolvers.ts index 8e3a2e7bd2..598e347366 100644 --- a/packages/server-core/src/user/user-relationship/user-relationship.resolvers.ts +++ b/packages/server-core/src/user/user-relationship/user-relationship.resolvers.ts @@ -34,7 +34,7 @@ import { } from '@etherealengine/engine/src/schemas/user/user-relationship.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const userRelationshipResolver = resolve({ user: virtual(async (userRelationship, context) => { @@ -48,7 +48,9 @@ export const userRelationshipResolver = resolve fromDateTimeSql(userRelationship.createdAt)), + updatedAt: virtual(async (userRelationship) => fromDateTimeSql(userRelationship.updatedAt)) }) export const userRelationshipExternalResolver = resolve({}) diff --git a/packages/server-core/src/user/user-setting/user-setting.resolvers.ts b/packages/server-core/src/user/user-setting/user-setting.resolvers.ts index fa568b5763..cdb8d2a812 100644 --- a/packages/server-core/src/user/user-setting/user-setting.resolvers.ts +++ b/packages/server-core/src/user/user-setting/user-setting.resolvers.ts @@ -24,7 +24,7 @@ Ethereal Engine. All Rights Reserved. */ // For more information about this file see https://dove.feathersjs.com/guides/cli/service.schemas.html -import { resolve } from '@feathersjs/schema' +import { resolve, virtual } from '@feathersjs/schema' import { v4 } from 'uuid' import { @@ -35,9 +35,7 @@ import { } from '@etherealengine/engine/src/schemas/user/user-setting.schema' import type { HookContext } from '@etherealengine/server-core/declarations' -import { getDateTimeSql } from '../../util/get-datetime-sql' - -export const userSettingResolver = resolve({}) +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const userDbToSchema = (rawData: UserSettingDatabaseType): UserSettingType => { let themeModes = JSON.parse(rawData.themeModes) as Record @@ -59,6 +57,11 @@ export const userDbToSchema = (rawData: UserSettingDatabaseType): UserSettingTyp } } +export const userSettingResolver = resolve({ + createdAt: virtual(async (userSetting) => fromDateTimeSql(userSetting.createdAt)), + updatedAt: virtual(async (userSetting) => fromDateTimeSql(userSetting.updatedAt)) +}) + export const userSettingExternalResolver = resolve( {}, { diff --git a/packages/server-core/src/user/user/user.resolvers.ts b/packages/server-core/src/user/user/user.resolvers.ts index a4fa9743c1..0979ad5bb3 100644 --- a/packages/server-core/src/user/user/user.resolvers.ts +++ b/packages/server-core/src/user/user/user.resolvers.ts @@ -44,7 +44,7 @@ import { } from '@etherealengine/engine/src/schemas/user/identity-provider.schema' import { UserApiKeyType, userApiKeyPath } from '@etherealengine/engine/src/schemas/user/user-api-key.schema' import { UserSettingType, userSettingPath } from '@etherealengine/engine/src/schemas/user/user-setting.schema' -import { getDateTimeSql } from '../../util/get-datetime-sql' +import { fromDateTimeSql, getDateTimeSql } from '../../util/datetime-sql' export const userResolver = resolve({ avatar: virtual(async (user, context) => { @@ -123,7 +123,9 @@ export const userResolver = resolve({ } return [] - }) + }), + createdAt: virtual(async (user) => fromDateTimeSql(user.createdAt)), + updatedAt: virtual(async (user) => fromDateTimeSql(user.updatedAt)) }) export const userExternalResolver = resolve({ diff --git a/packages/server-core/src/util/get-datetime-sql.ts b/packages/server-core/src/util/datetime-sql.ts similarity index 70% rename from packages/server-core/src/util/get-datetime-sql.ts rename to packages/server-core/src/util/datetime-sql.ts index 1015a7838d..667673e587 100644 --- a/packages/server-core/src/util/get-datetime-sql.ts +++ b/packages/server-core/src/util/datetime-sql.ts @@ -31,3 +31,28 @@ export const getDateTimeSql = async () => { export const toDateTimeSql = (date: Date) => { return date.toISOString().slice(0, 19).replace('T', ' ') } + +// https://stackoverflow.com/a/11150727 +export const fromDateTimeSql = (date: string) => { + let dateObj: Date + if (typeof date === 'string') { + dateObj = new Date(date) + } else { + dateObj = date + } + const dateString = + dateObj.getFullYear() + + '-' + + ('00' + (dateObj.getMonth() + 1)).slice(-2) + + '-' + + ('00' + dateObj.getDate()).slice(-2) + + 'T' + + ('00' + dateObj.getHours()).slice(-2) + + ':' + + ('00' + dateObj.getMinutes()).slice(-2) + + ':' + + ('00' + dateObj.getSeconds()).slice(-2) + + '.000Z' + + return dateString +}