All checks were successful
continuous-integration/drone/push Build is passing
* removed unused columns in tables * added multithreaded support for ip scans * added health endpoint
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"xorm.io/xorm"
|
|
)
|
|
|
|
func (city *City) GetOrCreate(session *xorm.Session) (apicity *APICity, err error) {
|
|
has, err := session.Get(city)
|
|
if err != nil {
|
|
return
|
|
}
|
|
if !has {
|
|
session.Insert(city)
|
|
} else {
|
|
session.ID(city.ID).Update(city)
|
|
}
|
|
city.Get(session)
|
|
apicity = city.APIFormat()
|
|
return
|
|
}
|
|
|
|
func (city *City) Get(session *xorm.Session) (apicity *APICity, err error) {
|
|
has, err := session.Get(city)
|
|
if !has || err != nil {
|
|
return
|
|
}
|
|
apicity = city.APIFormat()
|
|
return
|
|
}
|
|
|
|
func (city *City) APIFormat() *APICity {
|
|
if city == nil {
|
|
return &APICity{}
|
|
}
|
|
return &APICity{
|
|
CityName: city.CityName,
|
|
}
|
|
}
|
|
|
|
func (city *City) APIParse(apicity APICity) (err error) {
|
|
*city = City{
|
|
CityName: apicity.CityName}
|
|
return
|
|
}
|
|
|
|
type City struct {
|
|
ID int `xorm:"pk autoincr"`
|
|
CityName string `xorm:"text unique(cityindex) city_name" json:"city_name"`
|
|
Created time.Time `xorm:"created notnull"`
|
|
Updated time.Time `xorm:"updated notnull"`
|
|
}
|
|
|
|
type APICity struct {
|
|
ID int `json:"-"`
|
|
CityName string `json:"city_name"`
|
|
}
|