Skip to content

Commit

Permalink
chore(core): fallback for language query (#4354)
Browse files Browse the repository at this point in the history
  • Loading branch information
UncleSamtoshi authored Apr 25, 2024
1 parent 3e387a9 commit 0a830cc
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 7 deletions.
7 changes: 3 additions & 4 deletions core/api/src/app/users/get-user-language.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { DefaultLanguage } from "@/domain/users"
import { NotificationsService } from "@/services/notifications"

export const getUserLanguage = async (
user: User,
): Promise<UserLanguageOrEmpty | ApplicationError> => {
export const getUserLanguage = async (user: User): Promise<UserLanguageOrEmpty> => {
const settings = await NotificationsService().getUserNotificationSettings(user.id)

if (settings instanceof Error) return settings
if (settings instanceof Error) return DefaultLanguage

return settings.language
}
2 changes: 2 additions & 0 deletions core/api/src/config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ export const MAX_LENGTH_FOR_FEEDBACK = 1024

export const MIN_SATS_FOR_PRICE_RATIO_PRECISION = 5000n

export const USER_NOTIFICATION_SETTINGS_TIMEOUT_MS = MS_PER_SEC * 5

export const Levels: Levels = [0, 1, 2]

export const getGaloyBuildInformation = () => {
Expand Down
2 changes: 2 additions & 0 deletions core/api/src/domain/users/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ export const checkedToEmailAddress = (
return emailAddress as EmailAddress
}

export const DefaultLanguage = "" as UserLanguageOrEmpty

export const checkedToLanguage = (
language: string,
): UserLanguageOrEmpty | ValidationError => {
Expand Down
3 changes: 2 additions & 1 deletion core/api/src/services/notifications/grpc-client.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { promisify } from "util"

import { credentials, Metadata } from "@grpc/grpc-js"
import { credentials, Metadata, CallOptions } from "@grpc/grpc-js"

import { NotificationsServiceClient } from "./proto/notifications_grpc_pb"

Expand Down Expand Up @@ -67,6 +67,7 @@ export const disableNotificationChannel = promisify<
export const getNotificationSettings = promisify<
GetNotificationSettingsRequest,
Metadata,
Partial<CallOptions>,
GetNotificationSettingsResponse
>(notificationsClient.getNotificationSettings.bind(notificationsClient))

Expand Down
6 changes: 4 additions & 2 deletions core/api/src/services/notifications/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,10 @@ import * as notificationsGrpc from "./grpc-client"

import { handleCommonNotificationErrors } from "./errors"

import { getCallbackServiceConfig } from "@/config"
import { getCallbackServiceConfig, USER_NOTIFICATION_SETTINGS_TIMEOUT_MS } from "@/config"

import {
DeepLink,
NotificationCategory,
NotificationsServiceError,
NotificationType,
UnknownNotificationsServiceError,
Expand Down Expand Up @@ -65,6 +64,9 @@ export const NotificationsService = (): INotificationsService => {
const response = await notificationsGrpc.getNotificationSettings(
request,
notificationsGrpc.notificationsMetadata,
{
deadline: Date.now() + USER_NOTIFICATION_SETTINGS_TIMEOUT_MS,
},
)

const notificationSettings = grpcNotificationSettingsToNotificationSettings(
Expand Down

0 comments on commit 0a830cc

Please sign in to comment.