Skip to content

Commit 9f9e87f

Browse files
committed
refactor: deduplicate demo request check
1 parent 718c4c3 commit 9f9e87f

3 files changed

Lines changed: 9 additions & 11 deletions

File tree

server/src/controllers/course.controller.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type { Request, Response, NextFunction } from 'express'
22
import { query } from '../config/database.js'
33
import { cache, CACHE_KEYS } from '../config/redis.js'
4-
import { config } from '../config/env.js'
54
import { createError } from '../middleware/error.middleware.js'
65
import { COURSES_DIR, loadCourseFromFilesystem, loadCourseMetadata, courseExistsInFilesystem } from '../services/filesystem-loader.js'
76
import { loadAppConfig } from '../config/app-config.js'
87
import { formatCurrency } from '../utils/currency.js'
98
import { formatDate, formatRelativeDate } from '../utils/date.js'
9+
import { isDemoRequest } from '../utils/demo.js'
1010
import { stat } from 'fs/promises'
1111
import path from 'path'
1212
import type {
@@ -35,11 +35,6 @@ async function attachMyReactions(reviews: ReviewResponse[], userId: number): Pro
3535
}))
3636
}
3737

38-
function isDemoRequest(req: Request): boolean {
39-
const hasDemoHeader = !!req.headers['x-demo-user']
40-
return config.demoMode || (config.nodeEnv !== 'production' && hasDemoHeader)
41-
}
42-
4338
/**
4439
* GET /api/courses/featured
4540
* Returns list of featured/published courses

server/src/controllers/support.controller.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { query, insert } from '../config/database.js'
33
import { createError } from '../middleware/error.middleware.js'
44
import { notifyNewSupportMessage } from '../services/support-notifications.service.js'
55
import { config } from '../config/env.js'
6+
import { isDemoRequest } from '../utils/demo.js'
67

78
type SenderType = 'user' | 'admin'
89

@@ -58,11 +59,6 @@ interface SupportUserRow {
5859
has_started?: number | null
5960
}
6061

61-
function isDemoRequest(req: Request): boolean {
62-
const hasDemoHeader = !!req.headers['x-demo-user']
63-
return config.demoMode || (config.nodeEnv !== 'production' && hasDemoHeader)
64-
}
65-
6662
function shouldIncludeDemo(req: Request): boolean {
6763
return isDemoRequest(req)
6864
}

server/src/utils/demo.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import type { Request } from 'express'
2+
import { config } from '../config/env.js'
3+
4+
export function isDemoRequest(req: Request): boolean {
5+
const hasDemoHeader = !!req.headers['x-demo-user']
6+
return config.demoMode || (config.nodeEnv !== 'production' && hasDemoHeader)
7+
}

0 commit comments

Comments
 (0)