@@ -13,6 +13,7 @@ func (r *NotifierRepository) Save(notifier *Notifier) (*Notifier, error) {
1313 db := storage .GetDb ()
1414
1515 err := db .Transaction (func (tx * gorm.DB ) error {
16+
1617 switch notifier .NotifierType {
1718 case NotifierTypeTelegram :
1819 if notifier .TelegramNotifier != nil {
@@ -34,70 +35,83 @@ func (r *NotifierRepository) Save(notifier *Notifier) (*Notifier, error) {
3435 if notifier .DiscordNotifier != nil {
3536 notifier .DiscordNotifier .NotifierID = notifier .ID
3637 }
38+ case NotifierTypeTeams :
39+ if notifier .TeamsNotifier != nil {
40+ notifier .TeamsNotifier .NotifierID = notifier .ID
41+ }
3742 }
3843
3944 if notifier .ID == uuid .Nil {
40- if err := tx .Create ( notifier ).
45+ if err := tx .
4146 Omit (
4247 "TelegramNotifier" ,
4348 "EmailNotifier" ,
4449 "WebhookNotifier" ,
4550 "SlackNotifier" ,
4651 "DiscordNotifier" ,
52+ "TeamsNotifier" ,
4753 ).
48- Error ; err != nil {
54+ Create ( notifier ). Error ; err != nil {
4955 return err
5056 }
5157 } else {
52- if err := tx .Save ( notifier ).
58+ if err := tx .
5359 Omit (
5460 "TelegramNotifier" ,
5561 "EmailNotifier" ,
5662 "WebhookNotifier" ,
5763 "SlackNotifier" ,
5864 "DiscordNotifier" ,
65+ "TeamsNotifier" ,
5966 ).
60- Error ; err != nil {
67+ Save ( notifier ). Error ; err != nil {
6168 return err
6269 }
6370 }
6471
6572 switch notifier .NotifierType {
6673 case NotifierTypeTelegram :
6774 if notifier .TelegramNotifier != nil {
68- notifier .TelegramNotifier .NotifierID = notifier .ID // Ensure ID is set
75+ notifier .TelegramNotifier .NotifierID = notifier .ID
6976 if err := tx .Save (notifier .TelegramNotifier ).Error ; err != nil {
7077 return err
7178 }
7279 }
7380 case NotifierTypeEmail :
7481 if notifier .EmailNotifier != nil {
75- notifier .EmailNotifier .NotifierID = notifier .ID // Ensure ID is set
82+ notifier .EmailNotifier .NotifierID = notifier .ID
7683 if err := tx .Save (notifier .EmailNotifier ).Error ; err != nil {
7784 return err
7885 }
7986 }
8087 case NotifierTypeWebhook :
8188 if notifier .WebhookNotifier != nil {
82- notifier .WebhookNotifier .NotifierID = notifier .ID // Ensure ID is set
89+ notifier .WebhookNotifier .NotifierID = notifier .ID
8390 if err := tx .Save (notifier .WebhookNotifier ).Error ; err != nil {
8491 return err
8592 }
8693 }
8794 case NotifierTypeSlack :
8895 if notifier .SlackNotifier != nil {
89- notifier .SlackNotifier .NotifierID = notifier .ID // Ensure ID is set
96+ notifier .SlackNotifier .NotifierID = notifier .ID
9097 if err := tx .Save (notifier .SlackNotifier ).Error ; err != nil {
9198 return err
9299 }
93100 }
94101 case NotifierTypeDiscord :
95102 if notifier .DiscordNotifier != nil {
96- notifier .DiscordNotifier .NotifierID = notifier .ID // Ensure ID is set
103+ notifier .DiscordNotifier .NotifierID = notifier .ID
97104 if err := tx .Save (notifier .DiscordNotifier ).Error ; err != nil {
98105 return err
99106 }
100107 }
108+ case NotifierTypeTeams :
109+ if notifier .TeamsNotifier != nil {
110+ notifier .TeamsNotifier .NotifierID = notifier .ID
111+ if err := tx .Save (notifier .TeamsNotifier ).Error ; err != nil {
112+ return err
113+ }
114+ }
101115 }
102116
103117 return nil
@@ -120,6 +134,7 @@ func (r *NotifierRepository) FindByID(id uuid.UUID) (*Notifier, error) {
120134 Preload ("WebhookNotifier" ).
121135 Preload ("SlackNotifier" ).
122136 Preload ("DiscordNotifier" ).
137+ Preload ("TeamsNotifier" ).
123138 Where ("id = ?" , id ).
124139 First (& notifier ).Error ; err != nil {
125140 return nil , err
@@ -138,6 +153,7 @@ func (r *NotifierRepository) FindByUserID(userID uuid.UUID) ([]*Notifier, error)
138153 Preload ("WebhookNotifier" ).
139154 Preload ("SlackNotifier" ).
140155 Preload ("DiscordNotifier" ).
156+ Preload ("TeamsNotifier" ).
141157 Where ("user_id = ?" , userID ).
142158 Order ("name ASC" ).
143159 Find (& notifiers ).Error ; err != nil {
@@ -149,7 +165,7 @@ func (r *NotifierRepository) FindByUserID(userID uuid.UUID) ([]*Notifier, error)
149165
150166func (r * NotifierRepository ) Delete (notifier * Notifier ) error {
151167 return storage .GetDb ().Transaction (func (tx * gorm.DB ) error {
152- // Delete specific notifier based on type
168+
153169 switch notifier .NotifierType {
154170 case NotifierTypeTelegram :
155171 if notifier .TelegramNotifier != nil {
@@ -181,9 +197,14 @@ func (r *NotifierRepository) Delete(notifier *Notifier) error {
181197 return err
182198 }
183199 }
200+ case NotifierTypeTeams :
201+ if notifier .TeamsNotifier != nil {
202+ if err := tx .Delete (notifier .TeamsNotifier ).Error ; err != nil {
203+ return err
204+ }
205+ }
184206 }
185207
186- // Delete the main notifier
187208 return tx .Delete (notifier ).Error
188209 })
189210}
0 commit comments