package blog import ( "net/http" "github.com/CalebQ42/bbConvert" "github.com/CalebQ42/darkstorm-server/internal/backend" "go.mongodb.org/mongo-driver/mongo" ) type BlogApp struct { back *backend.Backend blogCol *mongo.Collection authCol *mongo.Collection portfolioCol *mongo.Collection conv *bbConvert.HTMLConverter } func NewBlogApp(b *backend.Backend, db *mongo.Database) *BlogApp { out := &BlogApp{ back: b, blogCol: db.Collection("blog"), authCol: db.Collection("author"), portfolioCol: db.Collection("portfolio"), conv: &bbConvert.HTMLConverter{}, } out.conv.ImplementDefaults() return out } func (b *BlogApp) AppID() string { return "blog" } func (b *BlogApp) CountTable() backend.CountTable { return nil } func (b *BlogApp) CrashTable() backend.CrashTable { return nil } func (b *BlogApp) Extension(mux *http.ServeMux) { mux.HandleFunc("GET /blog", b.reqLatestBlogs) mux.HandleFunc("GET /blog/list", b.reqBlogList) mux.HandleFunc("GET /blog/{blogID}", b.reqBlog) mux.HandleFunc("POST /blog", b.createBlog) mux.HandleFunc("POST /blog/{blogID}", b.updateBlog) mux.HandleFunc("GET /author/{authorID}", b.reqAuthorInfo) mux.HandleFunc("POST /author", b.addAuthorInfo) mux.HandleFunc("POST /author/{authorID}", b.updateAuthorInfo) mux.HandleFunc("GET /portfolio", b.reqPortfolio) }