diff --git a/src/api/notification/services/notification.ts b/src/api/notification/services/notification.ts index 04ce7c3..9b0fa5a 100644 --- a/src/api/notification/services/notification.ts +++ b/src/api/notification/services/notification.ts @@ -101,7 +101,18 @@ export default factories.createCoreService(MODULE_ID, ({ strapi }) => { } ) }, - updateLastConsumedNotificationDate() { + async updateLastConsumedNotificationDate() { + const existing = await strapi.entityService.findOne(NOTIFICATIONS_CONSUMER_MODULE_ID, SINGLETON_ID) + + if (!existing) { + return strapi.entityService.create( + NOTIFICATIONS_CONSUMER_MODULE_ID, + { + data: { lastConsumedNotificationDate: new Date() } + } + ) + } + return strapi.entityService.update( NOTIFICATIONS_CONSUMER_MODULE_ID, SINGLETON_ID, diff --git a/src/api/telegram-subscription/controllers/telegram-subscription.ts b/src/api/telegram-subscription/controllers/telegram-subscription.ts index c8c7408..40db99c 100644 --- a/src/api/telegram-subscription/controllers/telegram-subscription.ts +++ b/src/api/telegram-subscription/controllers/telegram-subscription.ts @@ -55,7 +55,13 @@ export default factories.createCoreController(MODULE_ID, ({strapi}) => { throw new errors.ValidationError('Invalid telegram authentication data') } - const existing = await strapi.entityService.findMany(MODULE_ID, { filters: { account, chatId: data.id } }) + const existing = await strapi.entityService.findMany(MODULE_ID, { + filters: { + account: { + $eqi: account + }, chatId: data.id + } + }) /** * We will only return true if the subscription belongs to the Telegram owner diff --git a/src/api/telegram-subscription/services/telegram-subscription.ts b/src/api/telegram-subscription/services/telegram-subscription.ts index 257e818..a2828e7 100644 --- a/src/api/telegram-subscription/services/telegram-subscription.ts +++ b/src/api/telegram-subscription/services/telegram-subscription.ts @@ -33,7 +33,7 @@ export default factories.createCoreService(MODULE_ID, ({strapi}) => { MODULE_ID, { data: { - account, + account: account.toLowerCase(), authDate: data.auth_date, firstName: data.first_name, hash: data.hash, @@ -57,9 +57,7 @@ export default factories.createCoreService(MODULE_ID, ({strapi}) => { MODULE_ID, { filters: { - account: { - $in: accounts - } + $or: accounts.map(account => ({ account: { $eqi: account } })) }, fields: ['id', 'account', 'chatId'] } @@ -70,7 +68,9 @@ export default factories.createCoreService(MODULE_ID, ({strapi}) => { MODULE_ID, { filters: { - account + account: { + $eqi: account + } }, fields: ['id', 'account', 'chatId'] }