default source logic

This commit is contained in:
boufni95 2024-12-06 16:17:02 +00:00
parent eba8ee75e0
commit 6e1e444b1c
2 changed files with 16 additions and 0 deletions

View file

@ -117,6 +117,14 @@ export class OfferManager {
throw new Error("App not found") throw new Error("App not found")
} }
const offers = await this.storage.offerStorage.GetUserOffers(ctx.app_user_id) 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() const nostrSettings = LoadNosrtSettingsFromEnv()
return { return {
offers: offers.map(o => mapToOfferConfig(ctx.app_user_id, o, { pubkey: app.npub, relay: nostrSettings.relays[0] })) offers: offers.map(o => mapToOfferConfig(ctx.app_user_id, o, { pubkey: app.npub, relay: nostrSettings.relays[0] }))

View file

@ -13,6 +13,14 @@ export default class {
this.DB = DB this.DB = DB
this.txQueue = txQueue this.txQueue = txQueue
} }
async AddDefaultUserOffer(appUserId: string): Promise<UserOffer> {
const newUserOffer = this.DB.getRepository(UserOffer).create({
app_user_id: appUserId,
offer_id: appUserId,
label: 'Default NIP-69 Offer',
})
return this.txQueue.PushToQueue<UserOffer>({ exec: async db => db.getRepository(UserOffer).save(newUserOffer), dbTx: false, description: `add default offer for ${appUserId}` })
}
async AddUserOffer(appUserId: string, req: Partial<UserOffer>): Promise<UserOffer> { async AddUserOffer(appUserId: string, req: Partial<UserOffer>): Promise<UserOffer> {
const newUserOffer = this.DB.getRepository(UserOffer).create({ const newUserOffer = this.DB.getRepository(UserOffer).create({
...req, ...req,