comparison pkg/imports/sr.go @ 1292:5aeda02c51b9

Sounding result import: Don't fail if an import ZIP does not contain an meta.json but has a full set of overrides.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 22 Nov 2018 13:37:29 +0100
parents d842d9d10872
children 5443f5c9154c 53057ab27ff2
comparison
equal deleted inserted replaced
1291:e9fb72fa6bae 1292:5aeda02c51b9
176 } 176 }
177 defer z.Close() 177 defer z.Close()
178 178
179 feedback.Info("Looking for 'meta.json'") 179 feedback.Info("Looking for 'meta.json'")
180 mf := common.FindInZIP(z, "meta.json") 180 mf := common.FindInZIP(z, "meta.json")
181 if mf == nil { 181 if mf == nil && !sr.completeOverride() {
182 return errors.New("Cannot find 'meta.json'") 182 return errors.New("Cannot find 'meta.json'")
183 } 183 }
184 184
185 m, err := sr.loadMeta(mf) 185 m, err := sr.loadMeta(mf)
186 if err != nil { 186 if err != nil {
296 296
297 func (sr *SoundingResult) CleanUp() error { 297 func (sr *SoundingResult) CleanUp() error {
298 return os.RemoveAll(sr.Dir) 298 return os.RemoveAll(sr.Dir)
299 } 299 }
300 300
301 func (sr *SoundingResult) completeOverride() bool {
302 return sr.EPSG != nil && sr.Bottleneck != nil && sr.Date != nil && sr.DepthReference != nil
303 }
304
301 func (sr *SoundingResult) loadMeta(f *zip.File) (*models.SoundingResultMeta, error) { 305 func (sr *SoundingResult) loadMeta(f *zip.File) (*models.SoundingResultMeta, error) {
306 if f == nil {
307 return &models.SoundingResultMeta{
308 Date: *sr.Date,
309 Bottleneck: *sr.Bottleneck,
310 EPSG: *sr.EPSG,
311 DepthReference: *sr.DepthReference,
312 }, nil
313 }
302 r, err := f.Open() 314 r, err := f.Open()
303 if err != nil { 315 if err != nil {
304 return nil, err 316 return nil, err
305 } 317 }
306 defer r.Close() 318 defer r.Close()