40 lines
926 B
Go
40 lines
926 B
Go
package mappers
|
|
|
|
import (
|
|
"RenewCMS/internal/domain/entry"
|
|
"RenewCMS/internal/infrastructure/persistence/models"
|
|
"encoding/json"
|
|
)
|
|
|
|
func EntryToDomain(m models.Entry) (entry.Entry, error) {
|
|
data := map[string]any{}
|
|
if err := json.Unmarshal([]byte(m.Data), &data); err != nil {
|
|
return entry.Entry{}, err
|
|
}
|
|
return entry.Entry{
|
|
ID: m.ID,
|
|
ContentTypeID: m.ContentTypeID,
|
|
Data: data,
|
|
CreatedBy: m.CreatedBy,
|
|
UpdatedBy: m.UpdatedBy,
|
|
CreatedAt: m.CreatedAt,
|
|
UpdatedAt: m.UpdatedAt,
|
|
}, nil
|
|
}
|
|
|
|
func EntryToModel(e entry.Entry) (models.Entry, error) {
|
|
data, err := json.Marshal(e.Data)
|
|
if err != nil {
|
|
return models.Entry{}, err
|
|
}
|
|
return models.Entry{
|
|
ID: e.ID,
|
|
ContentTypeID: e.ContentTypeID,
|
|
Data: string(data),
|
|
CreatedBy: e.CreatedBy,
|
|
UpdatedBy: e.UpdatedBy,
|
|
CreatedAt: e.CreatedAt,
|
|
UpdatedAt: e.UpdatedAt,
|
|
}, nil
|
|
}
|