Mercurial > gemma
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 } |