64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
package models
|
|
|
|
import (
|
|
"git.wmi.amu.edu.pl/s439508/Pracownia.Programowania/common"
|
|
"gopkg.in/mgo.v2/bson"
|
|
)
|
|
|
|
type Post struct {
|
|
Id string `bson:"_id,omitempty"`
|
|
Title string `bson:"title"`
|
|
ContentHtml string `bson:"content_html"`
|
|
ContentMd string `bson:"content_md"`
|
|
ContentCom string `bson:"content_com"`
|
|
}
|
|
|
|
//Post
|
|
var Posts = new(posts)
|
|
|
|
type posts struct{}
|
|
|
|
func (posts) FindOne(id string) (*Post, error) {
|
|
var p *Post
|
|
return p, common.DB.Posts.Find(bson.M{"_id": id}).One(&p)
|
|
}
|
|
|
|
func (posts) FindAll() ([]*Post, error) {
|
|
var ps []*Post
|
|
return ps, common.DB.Posts.Find(nil).All(&ps)
|
|
}
|
|
|
|
func (posts) Create(id, title, contentHtml, contentMd, contentCom string) (*Post, error) {
|
|
p := &Post{
|
|
Id: id,
|
|
Title: title,
|
|
ContentMd: contentMd,
|
|
ContentHtml: contentHtml,
|
|
ContentCom: contentCom,
|
|
}
|
|
if err := common.DB.Posts.Insert(p); err != nil {
|
|
return nil, err
|
|
}
|
|
return p, nil
|
|
|
|
}
|
|
|
|
func (posts) Update(id, title, contentHtml, contentMd, contentCom string) error {
|
|
if err := common.DB.Posts.UpdateId(id,
|
|
bson.M{"$set": bson.M{
|
|
"title": title,
|
|
"content_html": contentHtml,
|
|
"content_md": contentMd,
|
|
"content_com": contentCom,
|
|
}}); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
func (posts) DeletebyId(id string) error {
|
|
if err := common.DB.Posts.RemoveId(id); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|