comparison pkg/models/imports.go @ 3171:c8ded555c2a8

Sections import: Added a sections import. Derived from the stretches import w/o the countries.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Mon, 06 May 2019 16:36:03 +0200
parents eb1d119f253f
children 2ac52d89619e
comparison
equal deleted inserted replaced
3170:5c8ecab9f2d4 3171:c8ded555c2a8
105 NObjNam *string `json:"nobjnam"` 105 NObjNam *string `json:"nobjnam"`
106 Source string `json:"source-organization"` 106 Source string `json:"source-organization"`
107 Date Date `json:"date-info"` 107 Date Date `json:"date-info"`
108 Countries UniqueCountries `json:"countries"` 108 Countries UniqueCountries `json:"countries"`
109 } 109 }
110
111 SectionImport struct {
112 EmailType
113
114 Name string `json:"name"`
115 From Isrs `json:"from"`
116 To Isrs `json:"to"`
117 Tolerance float32 `json:"tolerance"`
118 ObjNam string `json:"objnam"`
119 NObjNam *string `json:"nobjnam"`
120 Source string `json:"source-organization"`
121 Date Date `json:"date-info"`
122 }
110 ) 123 )
111 124
112 func (cui *ConfigurableURLImport) MarshalAttributes(attrs common.Attributes) error { 125 func (cui *ConfigurableURLImport) MarshalAttributes(attrs common.Attributes) error {
113 if err := cui.URLType.MarshalAttributes(attrs); err != nil { 126 if err := cui.URLType.MarshalAttributes(attrs); err != nil {
114 return err 127 return err
292 } 305 }
293 sti.Countries = cs 306 sti.Countries = cs
294 } 307 }
295 return nil 308 return nil
296 } 309 }
310
311 func (seci *SectionImport) MarshalAttributes(attrs common.Attributes) error {
312 if err := seci.EmailType.MarshalAttributes(attrs); err != nil {
313 return err
314 }
315 attrs.Set("name", seci.Name)
316 attrs.Set("from", seci.From.String())
317 attrs.Set("to", seci.To.String())
318 attrs.Set("objnam", seci.ObjNam)
319 if seci.NObjNam != nil {
320 attrs.Set("nobjnam", *seci.NObjNam)
321 }
322 attrs.Set("source-organization", seci.Source)
323 attrs.SetDate("date-info", seci.Date.Time)
324
325 return nil
326 }
327
328 func (seci *SectionImport) UnmarshalAttributes(attrs common.Attributes) error {
329 if err := seci.EmailType.UnmarshalAttributes(attrs); err != nil {
330 return err
331 }
332 name, found := attrs.Get("name")
333 if !found {
334 return errors.New("missing 'name' attribute")
335 }
336 seci.Name = name
337 from, found := attrs.Get("from")
338 if !found {
339 return errors.New("missing 'from' attribute")
340 }
341 f, err := IsrsFromString(from)
342 if err != nil {
343 return err
344 }
345 seci.From = *f
346 to, found := attrs.Get("to")
347 if !found {
348 return errors.New("missing 'to' attribute")
349 }
350 t, err := IsrsFromString(to)
351 if err != nil {
352 return err
353 }
354 seci.To = *t
355 objnam, found := attrs.Get("objnam")
356 if !found {
357 return errors.New("missing 'objnam' attribute")
358 }
359 seci.ObjNam = objnam
360 nobjnam, found := attrs.Get("nobjnam")
361 if found {
362 seci.NObjNam = &nobjnam
363 }
364 source, found := attrs.Get("source-organization")
365 if !found {
366 return errors.New("missing 'source' attribute")
367 }
368 seci.Source = source
369 date, found := attrs.Date("date-info")
370 if !found {
371 return errors.New("missing 'date-info' attribute")
372 }
373 seci.Date = Date{date}
374 return nil
375 }