|
- package db2
-
- import (
- "fmt"
-
- "gitlink.org.cn/cloudream/storage2/common/pkgs/db2/model"
- )
-
- type LocationDB struct {
- *DB
- }
-
- func (db *DB) Location() *LocationDB {
- return &LocationDB{DB: db}
- }
-
- func (*LocationDB) GetByID(ctx SQLContext, id int64) (model.Location, error) {
- var ret model.Location
- err := ctx.First(&ret, id).Error
- return ret, err
- }
-
- func (db *LocationDB) FindLocationByExternalIP(ctx SQLContext, ip string) (model.Location, error) {
- var locID int64
- err := ctx.Table("Hub").Select("LocationID").Where("ExternalIP = ?", ip).Scan(&locID).Error
- if err != nil {
- return model.Location{}, fmt.Errorf("finding hub by external ip: %w", err)
- }
-
- loc, err := db.GetByID(ctx, locID)
- if err != nil {
- return model.Location{}, fmt.Errorf("getting location by id: %w", err)
- }
-
- return loc, nil
- }
|