Implement Journal read/write

This commit is contained in:
Martin Pander
2022-11-07 19:19:23 +01:00
parent ac6d3dbe8e
commit c3de3dd21f
7 changed files with 378 additions and 44 deletions

View File

@ -1,6 +1,7 @@
package mapping
import (
"encoding/json"
"log"
"time"
@ -22,16 +23,88 @@ func (mapper MapperImpl) JournalApiToDb(apimodel api.JournalEntry) db.Journal {
log.Printf("[ERROR] Could not parse date `%s`", apimodel.Date)
}
dbmodel := db.Journal{
Date: datatypes.Date(date),
// Thankful: datatypes.JSON([]byte(api.Thankful)),
thankful, err := json.Marshal(apimodel.Thankful)
if err != nil {
thankful = nil
}
return dbmodel
lookingForward, err := json.Marshal(apimodel.LookingForward)
if err != nil {
lookingForward = nil
}
beenGreat, err := json.Marshal(apimodel.BeenGreat)
if err != nil {
beenGreat = nil
}
doBetter, err := json.Marshal(apimodel.DoBetter)
if err != nil {
doBetter = nil
}
return db.Journal{
Date: datatypes.Date(date),
Thankful: datatypes.JSON(thankful),
LookingForward: datatypes.JSON(lookingForward),
BeenGreat: datatypes.JSON(beenGreat),
DoBetter: datatypes.JSON(doBetter),
Journal: apimodel.Journal,
}
}
func (mapper MapperImpl) JournalDbToApi(db.Journal) api.JournalEntry {
apimodel := api.JournalEntry{}
func (mapper MapperImpl) JournalDbToApi(dbmodel db.Journal) api.JournalEntry {
dateValue, err := dbmodel.Date.Value()
var date string
if err != nil {
date = ""
} else {
date = dateValue.(time.Time).Format("2006-01-02")
}
return apimodel
var thankful []string
err = json.Unmarshal(dbmodel.Thankful, &thankful)
if err != nil {
thankful = nil
}
var lookingForward []string
err = json.Unmarshal(dbmodel.LookingForward, &lookingForward)
if err != nil {
thankful = nil
}
var beenGreat []string
err = json.Unmarshal(dbmodel.BeenGreat, &beenGreat)
if err != nil {
thankful = nil
}
var doBetter []string
err = json.Unmarshal(dbmodel.DoBetter, &doBetter)
if err != nil {
thankful = nil
}
return api.JournalEntry{
Date: date,
Thankful: thankful,
LookingForward: lookingForward,
BeenGreat: beenGreat,
DoBetter: doBetter,
Journal: dbmodel.Journal,
}
}
func (mapper MapperImpl) StringToDate(dateString string) (time.Time, error) {
date, err := time.Parse("2006-01-02", dateString)
if err != nil {
log.Printf("[ERROR] Could not parse date string %s", dateString)
return time.Now(), err
}
return date, nil
}
func (mapper MapperImpl) DateToString(date time.Time) string {
return date.Format("2006-01-02")
}