mirror of
				https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
				synced 2025-10-30 09:35:31 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package xmlmodels
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"encoding/xml"
 | |
| 	"strconv"
 | |
| )
 | |
| 
 | |
| const (
 | |
| 	ISSUE_TYPE = "issue"
 | |
| )
 | |
| 
 | |
| type Issue struct {
 | |
| 	XMLName     xml.Name     `xml:"stueck"`
 | |
| 	Number      Nummer       `xml:"nummer"`
 | |
| 	Datum       KGPZDate     `xml:"datum"`
 | |
| 	Von         int          `xml:"von"`
 | |
| 	Bis         int          `xml:"bis"`
 | |
| 	Additionals []Additional `xml:"beilage"`
 | |
| 	Identifier
 | |
| 	AnnotationNote
 | |
| }
 | |
| 
 | |
| type Nummer struct {
 | |
| 	No        int    `xml:",chardata"`
 | |
| 	Corrected string `xml:"korrigiert,attr"`
 | |
| }
 | |
| 
 | |
| type Additional struct {
 | |
| 	XMLName xml.Name `xml:"beilage"`
 | |
| 	Nummer  int      `xml:"nummer,attr"`
 | |
| 	Von     int      `xml:"von"`
 | |
| 	Bis     int      `xml:"bis"`
 | |
| }
 | |
| 
 | |
| func (i Issue) Keys() []string {
 | |
| 	res := make([]string, 0, 2)
 | |
| 	res = append(res, i.Reference())
 | |
| 
 | |
| 	date := i.Datum.When.String()
 | |
| 	if date != "" {
 | |
| 		res = append(res, date)
 | |
| 	}
 | |
| 
 | |
| 	return res
 | |
| }
 | |
| 
 | |
| func (i Issue) Year() int {
 | |
| 	return i.Datum.When.Year
 | |
| }
 | |
| 
 | |
| func (i Issue) Reference() string {
 | |
| 	return strconv.Itoa(i.Datum.When.Year) + "-" + strconv.Itoa(i.Number.No)
 | |
| }
 | |
| 
 | |
| func (i Issue) String() string {
 | |
| 	data, _ := json.MarshalIndent(i, "", "  ")
 | |
| 	return string(data)
 | |
| }
 | |
| 
 | |
| func (i Issue) Readable(_ *Library) map[string]interface{} {
 | |
| 	ret := map[string]interface{}{
 | |
| 		"ID":     i.ID,
 | |
| 		"Number": i.Number.No,
 | |
| 		"Year":   i.Datum.When.Year,
 | |
| 		"Date":   strconv.Itoa(i.Datum.When.Day) + "." + strconv.Itoa(i.Datum.When.Month) + "." + strconv.Itoa(i.Datum.When.Year),
 | |
| 	}
 | |
| 
 | |
| 	for k, v := range i.AnnotationNote.Readable() {
 | |
| 		ret[k] = v
 | |
| 	}
 | |
| 
 | |
| 	return ret
 | |
| }
 | |
| 
 | |
| func (i Issue) Type() string {
 | |
| 	return ISSUE_TYPE
 | |
| }
 | 
