Refactor Photo.PlaceLoaded and LocationLoaded
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
This commit is contained in:
parent
6564e7a548
commit
f16169c259
|
@ -406,7 +406,15 @@ func (m *Photo) HasLocation() bool {
|
||||||
|
|
||||||
// LocationLoaded checks if the photo has a known location that is currently loaded.
|
// LocationLoaded checks if the photo has a known location that is currently loaded.
|
||||||
func (m *Photo) LocationLoaded() bool {
|
func (m *Photo) LocationLoaded() bool {
|
||||||
return m.Location != nil && m.Location.Place != nil && !m.Location.Unknown() && m.Location.ID == m.LocationID
|
if m.Location == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Location.Place == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return !m.Location.Unknown() && m.Location.ID == m.LocationID
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadLocation loads the photo location from the database if not done already.
|
// LoadLocation loads the photo location from the database if not done already.
|
||||||
|
@ -416,12 +424,30 @@ func (m *Photo) LoadLocation() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
var loc Location
|
var loc Location
|
||||||
return Db().Set("gorm:auto_preload", true).Model(m).Related(&loc, "Location").Error
|
|
||||||
|
err := Db().Set("gorm:auto_preload", true).Model(m).Related(&loc, "Location").Error
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Location == nil {
|
||||||
|
m.Location = &loc
|
||||||
|
} else if m.Location.Unknown() {
|
||||||
|
m.Location = &UnknownLocation
|
||||||
|
return fmt.Errorf("photo: unknown location (%s)", m)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// PlaceLoaded checks if the photo has a known place that is currently loaded.
|
// PlaceLoaded checks if the photo has a known place that is currently loaded.
|
||||||
func (m *Photo) PlaceLoaded() bool {
|
func (m *Photo) PlaceLoaded() bool {
|
||||||
return m.Place != nil && !m.Place.Unknown() && m.Place.ID == m.PlaceID
|
if m.Place == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return !m.Place.Unknown() && m.Place.ID == m.PlaceID
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadPlace loads the photo place from the database if not done already.
|
// LoadPlace loads the photo place from the database if not done already.
|
||||||
|
@ -434,15 +460,18 @@ func (m *Photo) LoadPlace() error {
|
||||||
|
|
||||||
err := Db().Set("gorm:auto_preload", true).Model(m).Related(&place, "Place").Error
|
err := Db().Set("gorm:auto_preload", true).Model(m).Related(&place, "Place").Error
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
if m.Place == nil {
|
if m.Place == nil {
|
||||||
m.Place = &place
|
m.Place = &place
|
||||||
}
|
} else if m.Place.Unknown() {
|
||||||
|
|
||||||
if m.Place.Unknown() {
|
|
||||||
m.Place = &UnknownPlace
|
m.Place = &UnknownPlace
|
||||||
|
return fmt.Errorf("photo: unknown place (%s)", m)
|
||||||
}
|
}
|
||||||
|
|
||||||
return err
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasLatLng checks if the photo has a latitude and longitude.
|
// HasLatLng checks if the photo has a latitude and longitude.
|
||||||
|
|
Loading…
Reference in a new issue