mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-29 09:05:30 +00:00
XML parsing overhaul
This commit is contained in:
@@ -2,7 +2,6 @@ package viewmodels
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/Theodor-Springmann-Stiftung/kgpz_web/providers/xmlprovider"
|
||||
@@ -10,56 +9,22 @@ import (
|
||||
|
||||
const TLAYOUT = "2006-01-02"
|
||||
|
||||
var TRANSLM = map[string][]string{
|
||||
"January": {"Januar", "Jan", "1"},
|
||||
"February": {"Februar", "Feb", "2"},
|
||||
"March": {"März", "Mär", "3"},
|
||||
"April": {"April", "Apr", "4"},
|
||||
"May": {"Mai", "Mai", "5"},
|
||||
"June": {"Juni", "Jun", "6"},
|
||||
"July": {"Juli", "Jul", "7"},
|
||||
"August": {"August", "Aug", "8"},
|
||||
"September": {"September", "Sep", "9"},
|
||||
"October": {"Oktober", "Okt", "10"},
|
||||
"November": {"November", "Nov", "11"},
|
||||
"December": {"Dezember", "Dez", "12"},
|
||||
}
|
||||
|
||||
var TRANSLD = map[string][]string{
|
||||
"Monday": {"Montag", "Mo"},
|
||||
"Tuesday": {"Dienstag", "Di"},
|
||||
"Wednesday": {"Mittwoch", "Mi"},
|
||||
"Thursday": {"Donnerstag", "Do"},
|
||||
"Friday": {"Freitag", "Fr"},
|
||||
"Saturday": {"Samstag", "Sa"},
|
||||
"Sunday": {"Sonntag", "So"},
|
||||
}
|
||||
|
||||
type IssueViewModel struct {
|
||||
xmlprovider.Issue
|
||||
Weekday []string
|
||||
Day int
|
||||
Month []string
|
||||
Day int
|
||||
Month int
|
||||
Year int
|
||||
}
|
||||
|
||||
func IssueView(y string, No string, lib *xmlprovider.Library) (*IssueViewModel, error) {
|
||||
n, err := strconv.Atoi(No)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
issue := lib.Issues.Item(y + "-" + No)
|
||||
|
||||
if issue == nil {
|
||||
return nil, errors.New("Issue not found")
|
||||
}
|
||||
|
||||
for _, i := range lib.Issues.Items.Issues {
|
||||
if len(i.Datum.When) < 4 {
|
||||
continue
|
||||
}
|
||||
return FromIssue(*issue)
|
||||
|
||||
d := i.Datum.When[:4]
|
||||
if d == y && i.Number.No == n {
|
||||
return FromIssue(i)
|
||||
}
|
||||
}
|
||||
|
||||
return nil, errors.New("Issue not found")
|
||||
}
|
||||
|
||||
func FromIssue(i xmlprovider.Issue) (*IssueViewModel, error) {
|
||||
@@ -69,10 +34,11 @@ func FromIssue(i xmlprovider.Issue) (*IssueViewModel, error) {
|
||||
}
|
||||
|
||||
ivm := IssueViewModel{
|
||||
Issue: i,
|
||||
Weekday: append(TRANSLD[t.Weekday().String()], t.Weekday().String()),
|
||||
Day: t.Day(),
|
||||
Month: TRANSLM[t.Month().String()]}
|
||||
Issue: i,
|
||||
Day: t.Day(),
|
||||
Month: int(t.Month()),
|
||||
Year: t.Year(),
|
||||
}
|
||||
|
||||
return &ivm, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user