Compare commits

...

2 Commits

Author SHA1 Message Date
Sosthene
3f64369852 [bug] Fix wrong api calls for storeData 2025-09-08 15:56:34 +02:00
Sosthene
e8c2d1a05a Get the storage urls from diffs 2025-09-08 15:56:14 +02:00
2 changed files with 19 additions and 9 deletions

View File

@ -668,9 +668,16 @@ export default class Services {
for (const hash of apiReturn.push_to_storage) { for (const hash of apiReturn.push_to_storage) {
const blob = await this.getBlobFromDb(hash); const blob = await this.getBlobFromDb(hash);
if (blob) { if (blob) {
await this.saveDataToStorage(hash, blob, null); // Get the storages from the diff data
const diff = await this.getDiffByValueFromDb(hash);
if (diff) {
const storages = diff.storages;
await this.saveDataToStorage(hash, storages, blob, null);
} else { } else {
console.error('Failed to get data from db'); console.error('Failed to get diff from db for hash', hash);
}
} else {
console.error('Failed to get data from db for hash', hash);
} }
} }
} }
@ -1030,9 +1037,7 @@ export default class Services {
} }
} }
public async saveDataToStorage(hash: string, data: Blob, ttl: number | null) { public async saveDataToStorage(hash: string, storages: string[], data: Blob, ttl: number | null) {
const storages = [STORAGEURL];
try { try {
await storeData(storages, hash, data, ttl); await storeData(storages, hash, data, ttl);
} catch (e) { } catch (e) {
@ -1052,6 +1057,12 @@ export default class Services {
return await testData(storages, hash); return await testData(storages, hash);
} }
public async getDiffByValueFromDb(hash: string): Promise<UserDiff | null> {
const db = await Database.getInstance();
const diff = await db.getObject('diffs', hash);
return diff;
}
public async saveDiffsToDb(diffs: UserDiff[]) { public async saveDiffsToDb(diffs: UserDiff[]) {
const db = await Database.getInstance(); const db = await Database.getInstance();
try { try {

View File

@ -7,14 +7,13 @@ export async function storeData(servers: string[], key: string, value: Blob, ttl
let url: string; let url: string;
if (server.startsWith('/')) { if (server.startsWith('/')) {
// Relative path - construct manually for proxy // Relative path - construct manually for proxy
url = `${server}/store?key=${encodeURIComponent(key)}`; url = `${server}/store/${encodeURIComponent(key)}`;
if (ttl !== null) { if (ttl !== null) {
url += `&ttl=${ttl}`; url += `?ttl=${ttl}`;
} }
} else { } else {
// Absolute URL - use URL constructor // Absolute URL - use URL constructor
const urlObj = new URL(`${server}/store`); const urlObj = new URL(`${server}/store/${encodeURIComponent(key)}`);
urlObj.searchParams.append('key', key);
if (ttl !== null) { if (ttl !== null) {
urlObj.searchParams.append('ttl', ttl.toString()); urlObj.searchParams.append('ttl', ttl.toString());
} }