Deletion of notification services.
This commit is contained in:
parent
c7ad2aa1b6
commit
a736ae60af
10 changed files with 74 additions and 9 deletions
|
|
@ -37,6 +37,16 @@ func ServiceFactory(t string, config []byte, prio int, ackURL string, logger *sl
|
|||
return nil, werr.New("Unknown notification service, '%s'", t).WithCode("002-0000")
|
||||
}
|
||||
|
||||
func NewInstance(typ string) Service {
|
||||
switch typ {
|
||||
case "NTFY":
|
||||
return new(NTFY)
|
||||
case "SCRIPT":
|
||||
return new(Script)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func GetInstance(typ string) Service {
|
||||
for _, svc := range allServices {
|
||||
if strings.ToLower(svc.GetType()) == strings.ToLower(typ) {
|
||||
|
|
|
|||
|
|
@ -60,6 +60,12 @@ func (nm *Manager) GetService(prio int) *Service {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (nm *Manager) RemoveService(prioToRemove int) {
|
||||
nm.services = slices.DeleteFunc(nm.services, func(svc Service) bool {
|
||||
return svc.GetPrio() == prioToRemove
|
||||
})
|
||||
}
|
||||
|
||||
func (nm *Manager) Send(problemID int, msg []byte, fn func(*Service, error)) (err error) {
|
||||
for i, service := range nm.services {
|
||||
nm.logger.Info("notification", "service", service.GetType(), "prio", service.GetPrio())
|
||||
|
|
|
|||
|
|
@ -95,6 +95,8 @@ func (script Script) Send(problemID int, msg []byte) (err error) {
|
|||
|
||||
func (script *Script) Update(values url.Values) (err error) {
|
||||
updated := Script{}
|
||||
script.updated = &updated
|
||||
|
||||
updated.Prio, err = strconv.Atoi(values.Get("prio"))
|
||||
if err != nil {
|
||||
return werr.Wrap(err)
|
||||
|
|
@ -105,8 +107,6 @@ func (script *Script) Update(values url.Values) (err error) {
|
|||
return werr.New("Filename cannot be empty")
|
||||
}
|
||||
updated.Filename = strings.TrimSpace(givenFilename)
|
||||
|
||||
script.updated = &updated
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue