mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-29 09:05:30 +00:00
restructured viewmodels, better serialization
This commit is contained in:
51
viewmodels/singleissue.go
Normal file
51
viewmodels/singleissue.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package viewmodels
|
||||
|
||||
import (
|
||||
"github.com/Theodor-Springmann-Stiftung/kgpz_web/helpers/logging"
|
||||
"github.com/Theodor-Springmann-Stiftung/kgpz_web/providers/xmlprovider"
|
||||
)
|
||||
|
||||
type SingleIssueViewModel struct {
|
||||
IssueViewModel
|
||||
No string
|
||||
Year string
|
||||
Additionals []PieceViewModel
|
||||
Pieces []PieceViewModel
|
||||
Next IssueViewModel
|
||||
Prev IssueViewModel
|
||||
}
|
||||
|
||||
func NewSingleIssueView(y string, No string, lib *xmlprovider.Library) (*SingleIssueViewModel, error) {
|
||||
ivm, err := IssueView(y, No, lib)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
sivm := SingleIssueViewModel{IssueViewModel: *ivm}
|
||||
|
||||
for _, a := range lib.Pieces.Items.Piece {
|
||||
for _, r := range a.IssueRefs {
|
||||
if r.Datum == y && r.Nr == No {
|
||||
p, err := NewPieceView(a)
|
||||
if err != nil {
|
||||
logging.ObjErr(&a, err)
|
||||
continue
|
||||
}
|
||||
sivm.Pieces = append(sivm.Pieces, p)
|
||||
}
|
||||
}
|
||||
|
||||
for _, r := range a.AdditionalRef {
|
||||
if r.Datum == y && r.Nr == No {
|
||||
p, err := NewPieceView(a)
|
||||
if err != nil {
|
||||
logging.ObjErr(&a, err)
|
||||
continue
|
||||
}
|
||||
sivm.Additionals = append(sivm.Additionals, p)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return &sivm, nil
|
||||
}
|
||||
Reference in New Issue
Block a user