GoBlog/pkgs/plugintypes/goblog.go

49 lines
1.1 KiB
Go
Raw Normal View History

package plugintypes
import (
"context"
"database/sql"
"go.goblog.app/app/pkgs/htmlbuilder"
)
// App is used to access GoBlog's app instance.
type App interface {
GetDatabase() Database
}
// Database is used to provide access to GoBlog's database.
type Database interface {
Exec(string, ...any) (sql.Result, error)
ExecContext(context.Context, string, ...any) (sql.Result, error)
Query(string, ...any) (*sql.Rows, error)
QueryContext(context.Context, string, ...any) (*sql.Rows, error)
QueryRow(string, ...any) (*sql.Row, error)
QueryRowContext(context.Context, string, ...any) (*sql.Row, error)
}
// Post
type Post interface {
GetParameters() map[string][]string
}
// RenderType
type RenderType string
// RenderData
type RenderData interface {
// Empty
}
// RenderNextFunc
type RenderNextFunc func(*htmlbuilder.HtmlBuilder)
// Render main element content on post page, data = PostRenderData
const PostMainElementRenderType RenderType = "post-main-content"
// PostRenderData is RenderData containing a Post
type PostRenderData interface {
RenderData
GetPost() Post
}