v2 #43
|
@ -31,6 +31,7 @@ func App(db infra.Database) *web.WebApp {
|
||||||
|
|
||||||
registry := app.NewEntryTypeRegistry()
|
registry := app.NewEntryTypeRegistry()
|
||||||
registry.Register(&model.ImageEntry{})
|
registry.Register(&model.ImageEntry{})
|
||||||
|
registry.Register(&model.PostEntry{})
|
||||||
|
|
||||||
entryRepo := infra.NewEntryRepository(db, registry)
|
entryRepo := infra.NewEntryRepository(db, registry)
|
||||||
binRepo := infra.NewBinaryFileRepo(db)
|
binRepo := infra.NewBinaryFileRepo(db)
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
type PostEntry struct {
|
||||||
|
id string
|
||||||
|
publishedAt *time.Time
|
||||||
|
meta PostEntryMetaData
|
||||||
|
}
|
||||||
|
|
||||||
|
type PostEntryMetaData struct {
|
||||||
|
Title string `owl:"inputType=text"`
|
||||||
|
Content string `owl:"inputType=text widget=textarea"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *PostEntry) ID() string {
|
||||||
|
return e.id
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *PostEntry) Content() EntryContent {
|
||||||
|
return EntryContent(e.meta.Content)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *PostEntry) PublishedAt() *time.Time {
|
||||||
|
return e.publishedAt
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *PostEntry) MetaData() interface{} {
|
||||||
|
return &e.meta
|
||||||
|
}
|
||||||
|
|
||||||
|
func (e *PostEntry) Create(id string, publishedAt *time.Time, metaData EntryMetaData) error {
|
||||||
|
e.id = id
|
||||||
|
e.publishedAt = publishedAt
|
||||||
|
e.meta = *metaData.(*PostEntryMetaData)
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
{{define "title"}}{{.MetaData.Title}}{{end}}
|
||||||
|
|
||||||
|
{{define "main"}}
|
||||||
|
|
||||||
|
<h1>{{.MetaData.Title}}</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
{{.Content}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Published: {{.PublishedAt}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
{{end}}
|
||||||
|
|
Loading…
Reference in New Issue