Refactor notificatin data structure

This commit is contained in:
Kailash Nadh 2019-12-01 17:48:03 +05:30
parent e9685b2ce5
commit bdd42b66c5
1 changed files with 14 additions and 12 deletions

View File

@ -83,6 +83,13 @@ type SubReq struct {
Lists pq.Int64Array `json:"lists"` Lists pq.Int64Array `json:"lists"`
} }
type importStatusTpl struct {
Name string
Status string
Imported int
Total int
}
var ( var (
// ErrIsImporting is thrown when an import request is made while an // ErrIsImporting is thrown when an import request is made while an
// import is already running. // import is already running.
@ -197,18 +204,18 @@ func (im *Importer) incrementImportCount(n int) {
func (im *Importer) sendNotif(status string) error { func (im *Importer) sendNotif(status string) error {
var ( var (
s = im.GetStats() s = im.GetStats()
data = map[string]interface{}{ out = importStatusTpl{
"Name": s.Name, Name: s.Name,
"Status": status, Status: status,
"Imported": s.Imported, Imported: s.Imported,
"Total": s.Total, Total: s.Total,
} }
subject = fmt.Sprintf("%s: %s import", subject = fmt.Sprintf("%s: %s import",
strings.Title(status), strings.Title(status),
s.Name) s.Name)
) )
return im.notifCB(subject, data) return im.notifCB(subject, out)
} }
// Start is a blocking function that selects on a channel queue until all // Start is a blocking function that selects on a channel queue until all
@ -561,11 +568,6 @@ func ValidateFields(s SubReq) error {
if !govalidator.IsByteLength(s.Name, 1, stdInputMaxLen) { if !govalidator.IsByteLength(s.Name, 1, stdInputMaxLen) {
return errors.New(`invalid or empty name "` + s.Name + `"`) return errors.New(`invalid or empty name "` + s.Name + `"`)
} }
if s.Status != models.SubscriberStatusEnabled &&
s.Status != models.SubscriberStatusDisabled &&
s.Status != models.SubscriberStatusBlackListed {
return errors.New(`invalid or empty status "` + s.Status + `"`)
}
return nil return nil
} }