diff --git a/src/services/main/offerManager.ts b/src/services/main/offerManager.ts index 52d0422d..9c238600 100644 --- a/src/services/main/offerManager.ts +++ b/src/services/main/offerManager.ts @@ -117,6 +117,14 @@ export class OfferManager { throw new Error("App not found") } const offers = await this.storage.offerStorage.GetUserOffers(ctx.app_user_id) + const defaultOffer = offers.find(o => o.app_user_id === o.offer_id) + let toAppend: UserOffer | undefined = undefined + if (!defaultOffer) { + toAppend = await this.storage.offerStorage.AddDefaultUserOffer(ctx.app_user_id) + } + if (toAppend) { + offers.push(toAppend) + } const nostrSettings = LoadNosrtSettingsFromEnv() return { offers: offers.map(o => mapToOfferConfig(ctx.app_user_id, o, { pubkey: app.npub, relay: nostrSettings.relays[0] })) diff --git a/src/services/storage/offerStorage.ts b/src/services/storage/offerStorage.ts index f1941f86..8fa4b532 100644 --- a/src/services/storage/offerStorage.ts +++ b/src/services/storage/offerStorage.ts @@ -13,6 +13,14 @@ export default class { this.DB = DB this.txQueue = txQueue } + async AddDefaultUserOffer(appUserId: string): Promise { + const newUserOffer = this.DB.getRepository(UserOffer).create({ + app_user_id: appUserId, + offer_id: appUserId, + label: 'Default NIP-69 Offer', + }) + return this.txQueue.PushToQueue({ exec: async db => db.getRepository(UserOffer).save(newUserOffer), dbTx: false, description: `add default offer for ${appUserId}` }) + } async AddUserOffer(appUserId: string, req: Partial): Promise { const newUserOffer = this.DB.getRepository(UserOffer).create({ ...req,