83 lines
1.8 KiB
Go
Executable File
83 lines
1.8 KiB
Go
Executable File
package model
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
|
|
"gordenko.dev/dima/qx"
|
|
"gordenko.dev/dima/textutil"
|
|
)
|
|
|
|
func New(qxdb *qx.Db) *Model {
|
|
s := new(Model)
|
|
s.qx = qxdb
|
|
return s
|
|
}
|
|
|
|
var reCountryCode = regexp.MustCompile(`\([a-z]{3}\)`)
|
|
|
|
// NormalizeNameToAlias - удаляет лишние пробельные символы. Заменяет whitespace символы на пробел,
|
|
// приводит к нижнему регистру
|
|
func NormalizeNameToAlias(name string) string {
|
|
name = strings.ToLower(name)
|
|
|
|
// вырезаем код страны если есть (пример: (Aut))
|
|
name = reCountryCode.ReplaceAllString(name, "")
|
|
|
|
name = strings.TrimSpace(name)
|
|
|
|
return textutil.NormalizeWhitespaces(name)
|
|
}
|
|
|
|
/*
|
|
func (s *Model) ListFootballChamps() (list []FootballChamp, err error) {
|
|
err = s.qx.ListBy(&list, "ORDER BY name ASC")
|
|
return
|
|
}
|
|
|
|
|
|
func (s *Model) ListFootballChampTeams(champID int64) (list []Team, err error) {
|
|
err = s.qx.ListBy(&list, "WHERE champID=? ORDER BY canonicalName ASC", champID)
|
|
return
|
|
}
|
|
|
|
|
|
func (s *Model) ListFootballTeamAliases(teamID int64) (list []Alias, err error) {
|
|
err = s.qx.ListBy(&list, "WHERE teamID=? ORDER BY name ASC", teamID)
|
|
return
|
|
}
|
|
|
|
func (s *Model) RemoveFootballTeam(teamID int64) (err error) {
|
|
return s.qx.Exec("DELETE FROM footballTeams WHERE teamID=?", teamID)
|
|
}
|
|
|
|
func (s *Model) RemoveFootballAlias(aliasID int64) (err error) {
|
|
return s.qx.Exec("DELETE FROM footballTeamAliases WHERE aliasID=?", aliasID)
|
|
}
|
|
|
|
func (s *Model) AddFootballAlias(req AddFootballAliasReq) (aliasID int64, err error) {
|
|
if req.Name == "" {
|
|
err = api.Err{
|
|
Code: EmptyValue,
|
|
Field: "name",
|
|
}
|
|
return
|
|
}
|
|
|
|
tx, err := s.qx.Tx()
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer tx.Close(&err)
|
|
|
|
aliasID, err = tx.Insert(req)
|
|
if err != nil {
|
|
return
|
|
}
|
|
err = tx.Commit()
|
|
return
|
|
}
|
|
|
|
|
|
*/
|