Mercurial > gemma
diff 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 |
line wrap: on
line diff
--- a/pkg/models/imports.go Mon May 06 16:18:41 2019 +0200 +++ b/pkg/models/imports.go Mon May 06 16:36:03 2019 +0200 @@ -107,6 +107,19 @@ Date Date `json:"date-info"` Countries UniqueCountries `json:"countries"` } + + SectionImport struct { + EmailType + + Name string `json:"name"` + From Isrs `json:"from"` + To Isrs `json:"to"` + Tolerance float32 `json:"tolerance"` + ObjNam string `json:"objnam"` + NObjNam *string `json:"nobjnam"` + Source string `json:"source-organization"` + Date Date `json:"date-info"` + } ) func (cui *ConfigurableURLImport) MarshalAttributes(attrs common.Attributes) error { @@ -294,3 +307,69 @@ } return nil } + +func (seci *SectionImport) MarshalAttributes(attrs common.Attributes) error { + if err := seci.EmailType.MarshalAttributes(attrs); err != nil { + return err + } + attrs.Set("name", seci.Name) + attrs.Set("from", seci.From.String()) + attrs.Set("to", seci.To.String()) + attrs.Set("objnam", seci.ObjNam) + if seci.NObjNam != nil { + attrs.Set("nobjnam", *seci.NObjNam) + } + attrs.Set("source-organization", seci.Source) + attrs.SetDate("date-info", seci.Date.Time) + + return nil +} + +func (seci *SectionImport) UnmarshalAttributes(attrs common.Attributes) error { + if err := seci.EmailType.UnmarshalAttributes(attrs); err != nil { + return err + } + name, found := attrs.Get("name") + if !found { + return errors.New("missing 'name' attribute") + } + seci.Name = name + from, found := attrs.Get("from") + if !found { + return errors.New("missing 'from' attribute") + } + f, err := IsrsFromString(from) + if err != nil { + return err + } + seci.From = *f + to, found := attrs.Get("to") + if !found { + return errors.New("missing 'to' attribute") + } + t, err := IsrsFromString(to) + if err != nil { + return err + } + seci.To = *t + objnam, found := attrs.Get("objnam") + if !found { + return errors.New("missing 'objnam' attribute") + } + seci.ObjNam = objnam + nobjnam, found := attrs.Get("nobjnam") + if found { + seci.NObjNam = &nobjnam + } + source, found := attrs.Get("source-organization") + if !found { + return errors.New("missing 'source' attribute") + } + seci.Source = source + date, found := attrs.Date("date-info") + if !found { + return errors.New("missing 'date-info' attribute") + } + seci.Date = Date{date} + return nil +}