Implement Journal read/write
This commit is contained in:
@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user