1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00

Introduce entity aliases (unfinished).

This commit is contained in:
Ferdinand Mütsch
2019-07-06 17:53:20 +02:00
parent e23e7520d0
commit 37ec6c62fc
6 changed files with 77 additions and 5 deletions

50
services/alias.go Normal file
View File

@ -0,0 +1,50 @@
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) InitUser(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
}