1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00
wakapi/services/alias.go
Ferdinand Mütsch e18a873428 Add documentation for aliases.
Reload aliases for every summary request.
2019-07-07 10:32:28 +02:00

51 lines
1.0 KiB
Go

package services
import (
"errors"
"github.com/jinzhu/gorm"
"github.com/n1try/wakapi/models"
)
type AliasService struct {
Config *models.Config
Db *gorm.DB
}
var userAliases map[string][]*models.Alias
func (srv *AliasService) LoadUserAliases(userId string) error {
if userAliases == nil {
userAliases = make(map[string][]*models.Alias)
}
var aliases []*models.Alias
if err := srv.Db.
Where(&models.Alias{UserID: userId}).
Find(&aliases).Error; err != nil {
return err
}
userAliases[userId] = aliases
return nil
}
func (srv *AliasService) GetAliasOrDefault(userId string, summaryType uint8, value string) (string, error) {
if userAliases, ok := userAliases[userId]; ok {
for _, a := range userAliases {
if a.Type == summaryType && a.Value == value {
return a.Key, nil
}
}
return value, nil
}
return "", errors.New("User aliases not initialized")
}
func (src *AliasService) IsInitialized(userId string) bool {
if _, ok := userAliases[userId]; ok {
return true
}
return false
}