Skip to content

Commit

Permalink
refactor: move db queries to repository
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinbhedag committed Mar 24, 2021
1 parent ecb66a8 commit 427c973
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 16 deletions.
27 changes: 27 additions & 0 deletions alert/repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,33 @@ func (r Repository) UpsertPagerduty(credential PagerdutyCredential) error {
return nil
}

func (r Repository) GetCredential(teamName string) (map[string]SlackCredential, PagerdutyCredential, error) {
row := r.db.Raw(`select sw.entity as entity, pg.service_key as pg_service_key, sw.channel_name as warning_channel_name, sw.webhook as warning_webhook, sw.username as warning_username,
sc.channel_name as critical_channel_name, sc.webhook as critical_webhook, sc.username as critical_username
from slack_credentials as sw
join slack_credentials as sc
on sc.team_name=sw.team_name
join pagerduty_credentials as pg
on sc.team_name = pg.team_name
where sw.team_name= ? and
sw.level='WARNING'
and sc.level ='CRITICAL'`, teamName).Row()
if row.Err() != nil {
return map[string]SlackCredential{}, PagerdutyCredential{}, row.Err()
}
var entity string
pagerdutyCredential := PagerdutyCredential{}
warningSlackCredential := SlackCredential{}
criticalSlackCredential := SlackCredential{}
row.Scan(&entity, &pagerdutyCredential.ServiceKey,
&warningSlackCredential.ChannelName, &warningSlackCredential.Webhook, &warningSlackCredential.Username,
&criticalSlackCredential.ChannelName, &criticalSlackCredential.Webhook, &criticalSlackCredential.Username)
pagerdutyCredential.Entity = entity
warningSlackCredential.Entity = entity
criticalSlackCredential.Entity = entity
return map[string]SlackCredential{"WARNING": warningSlackCredential,
"CRITICAL": criticalSlackCredential}, pagerdutyCredential, nil
}
func NewRepository(db *gorm.DB) *Repository {
return &Repository{db: db}
}
38 changes: 22 additions & 16 deletions alert/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,23 +121,29 @@ from slack_credentials as sw
}

func (s Service) Get(teamName string) (domain.AlertCredential, error) {
row := s.repository.db.Raw(`select sw.team_name as team_name, sw.entity as entity, pg.service_key as pg_service_key, sw.channel_name as warning_channel_name, sw.webhook as warning_webhook, sw.username as warning_username,
sc.channel_name as critical_channel_name, sc.webhook as critical_webhook, sc.username as critical_username
from slack_credentials as sw
join slack_credentials as sc
on sc.team_name=sw.team_name
join pagerduty_credentials as pg
on sc.team_name = pg.team_name
where sw.team_name= ? and
sw.level='WARNING'
and sc.level ='CRITICAL'`, teamName).Row()
if row.Err() != nil {
return domain.AlertCredential{}, row.Err()
slackCredentialMap, pagerdutyCredential, err := s.repository.GetCredential(teamName)
if err != nil {
return domain.AlertCredential{}, err
}
warningSlackCredential := slackCredentialMap["WARNING"]
criticalSlackCredential := slackCredentialMap["CRITICAL"]
credential := domain.AlertCredential{
Entity: pagerdutyCredential.Entity,
TeamName: teamName,
PagerdutyCredentials: pagerdutyCredential.ServiceKey,
SlackConfig: domain.SlackConfig{
Warning: domain.SlackCredential{
Channel: warningSlackCredential.ChannelName,
Webhook: warningSlackCredential.Webhook,
Username: warningSlackCredential.Username,
},
Critical: domain.SlackCredential{
Channel: criticalSlackCredential.ChannelName,
Webhook: criticalSlackCredential.Webhook,
Username: criticalSlackCredential.Username,
},
},
}
credential := domain.AlertCredential{}
row.Scan(&credential.TeamName, &credential.Entity, &credential.PagerdutyCredentials,
&credential.SlackConfig.Warning.Channel, &credential.SlackConfig.Warning.Webhook, &credential.SlackConfig.Warning.Username,
&credential.SlackConfig.Critical.Channel, &credential.SlackConfig.Critical.Webhook, &credential.SlackConfig.Critical.Username)
return credential, nil
}

Expand Down

0 comments on commit 427c973

Please sign in to comment.