func (m *ThingModel) Create(thing *model.Thing, conn redis.Conn) error { m.syncing.Wait() //defer m.sync() if thing.ID == "" { thing.ID = uuid.NewRandom().String() } _, err := m.save(thing.ID, thing, conn) return err }
func (m *ThingModel) onFetch(thing *model.Thing, syncing bool, conn redis.Conn) error { deviceID, err := m.GetDeviceIDForThing(thing.ID, conn) if err != nil && err != RecordNotFound { return fmt.Errorf("Failed to fetch device id for thing (id:%s) : %s", thing.ID, err) } if deviceID != nil { thing.DeviceID = deviceID if !syncing { device, err := m.DeviceModel.Fetch(*deviceID, conn) if err != nil { return fmt.Errorf("Failed to fetch nested device (id:%s) on thing %s : %s", *deviceID, thing.ID, err) } thing.Device = device } } return nil }