package xml import ( "errors" "fmt" "strings" "time" "airlines/pkg/model" ) func (u XMLUser) ToUser() (*model.User, error) { return &model.User{ Nick: "", Name: strings.ToUpper(strings.TrimSpace(u.Name.First)), Surname: strings.ToUpper(strings.TrimSpace(u.Name.Last)), Fathersname: "", Sex: model.SexUnknown, Birthday: model.SentinelBirthday(), }, nil } func (c XMLCard) ToCard() (*model.Card, error) { prefix, number, _ := model.ParseCardLine(c.Number) if prefix == "" && number == 0 && strings.TrimSpace(c.Program) == "" { return nil, errors.New("bad card") } return &model.Card{ Prefix: prefix, Number: number, Bonusprogramm: strings.TrimSpace(c.Program), }, nil } func (a XMLActivity) ToFlight() (*model.Flight, error) { fromIATA := strings.ToUpper(strings.TrimSpace(a.Departure)) toIATA := strings.ToUpper(strings.TrimSpace(a.Arrival)) d, err := time.Parse("2006-01-02", strings.TrimSpace(a.Date)) if err != nil { return nil, fmt.Errorf("invalid Date %q for flight %q: %w", a.Date, a.Code, err) } departUTC := time.Date(d.Year(), d.Month(), d.Day(), 0, 0, 0, 0, time.UTC) return &model.Flight{ Number: strings.TrimSpace(a.Code), From: fromIATA, To: toIATA, Date: departUTC, }, nil }