From 180efb4846202e6ab494d3bd39c348d217d400e3 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Fri, 5 Jul 2024 20:15:20 +0800 Subject: [PATCH] Set Android client This checks user-agent before X-OmnivoreClient so the more explicit X-OmnivoreClient overrides the derived client being set from user agent. --- .../app/omnivore/omnivore/core/network/Networker.kt | 4 +++- packages/api/src/server.ts | 13 +++++++------ packages/api/test/routers/auth.test.ts | 1 + 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/network/Networker.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/network/Networker.kt index 4bf66f76d..1a6a12e1f 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/network/Networker.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/core/network/Networker.kt @@ -17,5 +17,7 @@ class Networker @Inject constructor( private suspend fun authToken() = datastoreRepo.getString(omnivoreAuthToken) ?: "" suspend fun authenticatedApolloClient() = ApolloClient.Builder().serverUrl(serverUrl()) - .addHttpHeader("Authorization", value = authToken()).build() + .addHttpHeader("Authorization", value = authToken()) + .addHttpHeader("X-OmnivoreClient", value = "android") + .build() } diff --git a/packages/api/src/server.ts b/packages/api/src/server.ts index 3efaf69af..37df57fcc 100755 --- a/packages/api/src/server.ts +++ b/packages/api/src/server.ts @@ -73,18 +73,19 @@ export const createApp = (): Express => { // set client info in the request context app.use(httpContext.middleware) app.use('/api/', (req, res, next) => { - // get client info from header - const client = req.header('X-OmnivoreClient') - if (client) { - httpContext.set('client', client) - } - // get client info from user agent const userAgent = req.header('User-Agent') if (userAgent) { const client = getClientFromUserAgent(userAgent) httpContext.set('client', client) } + + // get client info from header + const client = req.header('X-OmnivoreClient') + if (client) { + httpContext.set('client', client) + } + next() }) diff --git a/packages/api/test/routers/auth.test.ts b/packages/api/test/routers/auth.test.ts index 415231149..e7f93c5b1 100644 --- a/packages/api/test/routers/auth.test.ts +++ b/packages/api/test/routers/auth.test.ts @@ -491,6 +491,7 @@ describe('auth router', () => { return request .post(`${route}/create-account`) .set('X-OmnivoreClient', client) + .set('User-Agent', 'chrome') .set('Cookie', [`pendingUserAuth=${pendingUserAuth}`]) .send({ name,