diff --git a/src/rices/rices.service.ts b/src/rices/rices.service.ts index daa7ac5..fdf0193 100644 --- a/src/rices/rices.service.ts +++ b/src/rices/rices.service.ts @@ -10,6 +10,8 @@ import { generateSlug } from './utils/slug.util'; import { GitHubService } from '../github/github.service'; import { SupabaseService } from '../supabase/supabase.service'; +const userAgentRegex = /ZenBrowser\/(\d+\.\d\w\.\d) \((.+)\)/; + @Injectable() export class RicesService { constructor( @@ -25,9 +27,7 @@ export class RicesService { const userAgent = headers['user-agent']; if (!name || !author || !userAgent) { - throw new BadRequestException( - 'Missing required headers: X-Zen-Rice-Name, X-Zen-Rice-Author, and User-Agent are mandatory.', - ); + throw new BadRequestException('Rice name and author are required!'); } // Validate content @@ -56,7 +56,6 @@ export class RicesService { } // Parse version and OS from User-Agent - const userAgentRegex = /ZenBrowser\/(\d+\.\d+\.\d.\d+) \((.+)\)/; const match = userAgent.match(userAgentRegex); if (!match) { @@ -157,7 +156,7 @@ export class RicesService { ) { try { // Extract fields from headers - const userAgent = headers['user-agent']; + const userAgent = headers['User-Agent']; if (!userAgent) { throw new BadRequestException( @@ -166,7 +165,8 @@ export class RicesService { } // Parse version and OS from User-Agent - const userAgentRegex = /ZenBrowser\/(\d+\.\d+\.\d.\d+) \((.+)\)/; + // It must have the following format: + // example version: 1.0.2-b.1 const match = userAgent.match(userAgentRegex); if (!match) { diff --git a/test/restclient/01_create_rice.http b/test/restclient/01_create_rice.http index f17486f..cd7ce87 100644 --- a/test/restclient/01_create_rice.http +++ b/test/restclient/01_create_rice.http @@ -4,7 +4,7 @@ POST {{baseUrl}}/rices Content-Type: application/json X-Zen-Rice-Name: cool-zenrice-aurora2 X-Zen-Rice-Author: jhon@doe.com -User-Agent: ZenBrowser/1.0.0.0 (EndeavourOS x86_64) +User-Agent: ZenBrowser/1.2b.0 (EndeavourOS x86_64) { "userChrome": "", diff --git a/test/restclient/03_update_rice.http b/test/restclient/03_update_rice.http index 3d9a9fc..8387318 100644 --- a/test/restclient/03_update_rice.http +++ b/test/restclient/03_update_rice.http @@ -7,7 +7,7 @@ Content-Type: application/json x-zen-rices-token: {{previous_token}} X-Zen-Rice-Name: cool-zenrice-aurora2 X-Zen-Rice-Author: jhon@doe.com -User-Agent: ZenBrowser/1.0.0.0 (EndeavourOS x86_64) +User-Agent: ZenBrowser/1.2b.0 (EndeavourOS x86_64) { "userChrome": "",