fix user-agent update bug

fix remove extra base64 encoding
fix update http tests
This commit is contained in:
oscargonzalezmoreno@gmail.com 2024-12-28 12:48:32 +01:00
parent 55fa0b747f
commit 612e27a55c
6 changed files with 12 additions and 21 deletions

2
.gitignore vendored
View file

@ -13,7 +13,7 @@ yarn-error.log*
lerna-debug.log* lerna-debug.log*
#node #node
*package.lock *package-lock.json
# OS # OS
.DS_Store .DS_Store

3
package-lock.json generated
View file

@ -3520,7 +3520,6 @@
], ],
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13" "ieee754": "^1.1.13"
} }
}, },
@ -9793,4 +9792,4 @@
} }
} }
} }
} }

View file

@ -94,8 +94,6 @@ export class RicesService {
} }
const token = uuidv4(); const token = uuidv4();
const encodedContent = Buffer.from(content).toString('base64');
const metadata = { const metadata = {
id: uuidv4(), id: uuidv4(),
token, token,
@ -115,7 +113,7 @@ export class RicesService {
const uploadedFilePath = `rices/${slug}/data.zenrice`; const uploadedFilePath = `rices/${slug}/data.zenrice`;
await this.gitHubService.createOrUpdateFile( await this.gitHubService.createOrUpdateFile(
uploadedFilePath, uploadedFilePath,
encodedContent, content,
`Add content to rice ${slug}`, `Add content to rice ${slug}`,
); );
@ -139,13 +137,10 @@ export class RicesService {
throw new NotFoundException('Rice file not found in GitHub'); throw new NotFoundException('Rice file not found in GitHub');
} }
// Decode Base64 content
const contentPrev = Buffer.from(fileContent, 'base64').toString('utf-8');
// Remove unescaped double quotes at the beginning and end, if present // Remove unescaped double quotes at the beginning and end, if present
const content = contentPrev.replace(/^"|"$/g, ''); // const content = contentPrev.replace(/^"|"$/g, '');
return content; return fileContent;
} }
async update( async update(
@ -156,11 +151,11 @@ export class RicesService {
) { ) {
try { try {
// Extract fields from headers // Extract fields from headers
const userAgent = headers['User-Agent']; const userAgent = headers['user-agent'];
if (!userAgent) { if (!userAgent) {
throw new BadRequestException( throw new BadRequestException(
'Missing required headers: X-Zen-Rice-Name, X-Zen-Rice-Author, and User-Agent are mandatory.', 'Missing required headers: User-Agent is mandatory.',
); );
} }
@ -202,11 +197,10 @@ export class RicesService {
await this.supabaseService.updateRice(slug, updatedMetadata); await this.supabaseService.updateRice(slug, updatedMetadata);
const encodedContent = Buffer.from(content).toString('base64');
const uploadedFilePath = `rices/${slug}/data.zenrice`; const uploadedFilePath = `rices/${slug}/data.zenrice`;
await this.gitHubService.createOrUpdateFile( await this.gitHubService.createOrUpdateFile(
uploadedFilePath, uploadedFilePath,
encodedContent, content,
`Update content in rice ${slug}`, `Update content in rice ${slug}`,
); );

View file

@ -2,7 +2,7 @@
POST {{baseUrl}}/rices POST {{baseUrl}}/rices
Content-Type: application/json Content-Type: application/json
X-Zen-Rice-Name: cool-zenrice-aurora2 X-Zen-Rice-Name: cool-zenrice-test-base64211
X-Zen-Rice-Author: jhon@doe.com X-Zen-Rice-Author: jhon@doe.com
User-Agent: ZenBrowser/1.2b.0 (EndeavourOS x86_64) User-Agent: ZenBrowser/1.2b.0 (EndeavourOS x86_64)

View file

@ -1,5 +1,5 @@
@baseUrl = http://localhost:3000 @baseUrl = http://localhost:3000
@previous_slug = cool-zenrice-aurora2-4fe6417d-f901-43d2-92fc-720c6ed3e449 @previous_slug = cool-zenrice-test-base64211-5f874c8c-71f7-4b45-830a-aa86c9328455
GET {{baseUrl}}/rices/{{previous_slug}} GET {{baseUrl}}/rices/{{previous_slug}}

View file

@ -1,12 +1,10 @@
@baseUrl = http://localhost:3000 @baseUrl = http://localhost:3000
@previous_slug = cool-zenrice-aurora2-4fe6417d-f901-43d2-92fc-720c6ed3e449 @previous_slug = cool-zenrice-test-base64211-5f874c8c-71f7-4b45-830a-aa86c9328455
@previous_token = e3ec0c0f-f455-4a4e-a06d-69d2e3bbf46c @previous_token = 84780af0-191e-4f77-8c23-25165c89d27e
PUT {{baseUrl}}/rices/{{previous_slug}} PUT {{baseUrl}}/rices/{{previous_slug}}
Content-Type: application/json Content-Type: application/json
x-zen-rices-token: {{previous_token}} x-zen-rices-token: {{previous_token}}
X-Zen-Rice-Name: cool-zenrice-aurora2
X-Zen-Rice-Author: jhon@doe.com
User-Agent: ZenBrowser/1.2b.0 (EndeavourOS x86_64) User-Agent: ZenBrowser/1.2b.0 (EndeavourOS x86_64)
{ {