From c66a18478b3a37eee6850f8348d26c1439778b64 Mon Sep 17 00:00:00 2001 From: Anders Gustafsson <34234789+anders-photowall@users.noreply.github.com> Date: Thu, 2 Mar 2023 12:56:38 +0100 Subject: [PATCH] 3384 - add locales to market query (#147) --- src/datasources/market-locale-api.ts | 19 +++++++++++++++++++ src/resolvers/markets-locale-resolver.ts | 8 +++++++- src/schema.graphql | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/datasources/market-locale-api.ts b/src/datasources/market-locale-api.ts index dd50fb9..5950e29 100644 --- a/src/datasources/market-locale-api.ts +++ b/src/datasources/market-locale-api.ts @@ -73,6 +73,25 @@ export class MarketLocaleAPI extends SQLDataSource { ); } + async getLocalesForMarketId(marketId: number): Promise { + ScopeAccess.validate(this.user).all([Scopes.LOCALES_READ]); + return ( + this.knex + .select( + 'market_id', + 'locales.id', + 'value', + 'fallback_id', + 'locales.name', + ) + .from('market_locales') + .leftJoin('locales', 'locales.id', 'market_locales.locale_id') + .where('market_id', marketId) + // @ts-ignore + .cache(MINUTE * 5) + ); + } + async getLocaleByValue(value: string): Promise { ScopeAccess.validate(this.user).all([Scopes.LOCALES_READ]); return ( diff --git a/src/resolvers/markets-locale-resolver.ts b/src/resolvers/markets-locale-resolver.ts index 4020aff..e734ac9 100644 --- a/src/resolvers/markets-locale-resolver.ts +++ b/src/resolvers/markets-locale-resolver.ts @@ -1,6 +1,12 @@ import { MarketLocaleAPI } from '../datasources/market-locale-api'; -const Market = {}; +const Market = { + async locales({ id }, _args, { dataSources }) { + return (dataSources.marketLocaleApi).getLocalesForMarketId( + id, + ); + }, +}; async function getMarkets(_, _args, { dataSources }) { return (dataSources.marketLocaleApi).getMarkets(); diff --git a/src/schema.graphql b/src/schema.graphql index 6eaf938..8e19919 100644 --- a/src/schema.graphql +++ b/src/schema.graphql @@ -127,6 +127,7 @@ type Market { vat: Float! currency: String! priceAdjustment: Float! + locales: [Locale]! } type Locale {