diff --git a/package.json b/package.json index 64e190e2..2394d4af 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hawk.api", - "version": "1.1.24", + "version": "1.1.25", "main": "index.ts", "license": "UNLICENSED", "scripts": { diff --git a/src/models/project.ts b/src/models/project.ts index 256cfdd7..16147ddb 100644 --- a/src/models/project.ts +++ b/src/models/project.ts @@ -9,7 +9,7 @@ import { v4 as uuid } from 'uuid'; */ export enum ReceiveTypes { /** - * All notifications + * Notify if more than n error occurrences in the given period */ SEEN_MORE = 'SEEN_MORE', diff --git a/src/resolvers/project.js b/src/resolvers/project.js index 9c0ada37..07251be1 100644 --- a/src/resolvers/project.js +++ b/src/resolvers/project.js @@ -1,3 +1,4 @@ +import { ReceiveTypes } from '@hawk.so/types'; import * as telegram from '../utils/telegram'; const mongo = require('../mongo'); const { ApolloError, UserInputError } = require('apollo-server-express'); @@ -55,7 +56,40 @@ module.exports = { image, }; - const project = await factories.projectsFactory.create(options); + let project = await factories.projectsFactory.create(options); + const userData = await factories.usersFactory.findById(user.id); + + try { + await project.createNotificationsRule({ + isEnabled: true, + whatToReceive: ReceiveTypes.SEEN_MORE, + including: [], + excluding: [], + threshold: 20, + thresholdPeriod: 3600000, + channels: { + email: { + isEnabled: true, + endpoint: userData.email, + minPeriod: 60, + }, + telegram: { + isEnabled: false, + endpoint: '', + minPeriod: 60, + }, + slack: { + isEnabled: false, + endpoint: '', + minPeriod: 60, + }, + }, + }); + + project = await factories.projectsFactory.findById(project._id); + } catch (err) { + telegram.sendMessage(`❌ Failed to enable default notifications for project ${name}`); + } /** * Create collections for storing events and setup indexes