Fixing some stuff
This commit is contained in:
@@ -29,7 +29,7 @@ func latestBlogsHandle(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func blogHandle(w http.ResponseWriter, r *http.Request, blog string) {
|
func blogHandle(w http.ResponseWriter, r *http.Request, blog string) {
|
||||||
bl, err := blogApp.Blog(r.Context(), blog, true)
|
bl, err := blogApp.Blog(r.Context(), blog)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == backend.ErrNotFound {
|
if err == backend.ErrNotFound {
|
||||||
w.WriteHeader(404)
|
w.WriteHeader(404)
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ func editorEdit(w http.ResponseWriter, r *http.Request) {
|
|||||||
if blogID == "new" {
|
if blogID == "new" {
|
||||||
bl = &blog.Blog{}
|
bl = &blog.Blog{}
|
||||||
} else {
|
} else {
|
||||||
bl, err = blogApp.Blog(r.Context(), blogID, false)
|
bl, err = blogApp.AnyBlog(r.Context(), blogID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("error getting blog for editor:", err)
|
log.Println("error getting blog for editor:", err)
|
||||||
log.Println(blogID)
|
log.Println(blogID)
|
||||||
@@ -250,7 +250,7 @@ func editorPost(w http.ResponseWriter, r *http.Request) {
|
|||||||
sendContent(w, r, "<p>Server error updating blog</p>", "", "")
|
sendContent(w, r, "<p>Server error updating blog</p>", "", "")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
old, err := blogApp.Blog(r.Context(), newBlog.ID, false)
|
old, err := blogApp.AnyBlog(r.Context(), newBlog.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("error getting old blog to be updated:", err)
|
log.Println("error getting old blog to be updated:", err)
|
||||||
sendContent(w, r, "<p>Updated!</p>", "", "")
|
sendContent(w, r, "<p>Updated!</p>", "", "")
|
||||||
|
|||||||
+21
-8
@@ -79,17 +79,13 @@ func (b *BlogApp) GetAuthor(ctx context.Context, blog *Blog) (*Author, error) {
|
|||||||
return &author, err
|
return &author, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BlogApp) Blog(ctx context.Context, ID string, useCache bool) (*Blog, error) {
|
func (b *BlogApp) Blog(ctx context.Context, ID string) (*Blog, error) {
|
||||||
var blog Blog
|
|
||||||
if useCache {
|
|
||||||
b.cacheMutex.RLock()
|
b.cacheMutex.RLock()
|
||||||
var has bool
|
blog, has := b.blogCache[ID]
|
||||||
blog, has = b.blogCache[ID]
|
|
||||||
b.cacheMutex.RUnlock()
|
b.cacheMutex.RUnlock()
|
||||||
if has {
|
if has {
|
||||||
return &blog, nil
|
return &blog, nil
|
||||||
}
|
}
|
||||||
}
|
|
||||||
res := b.blogCol.FindOne(ctx, bson.M{"_id": ID, "draft": false})
|
res := b.blogCol.FindOne(ctx, bson.M{"_id": ID, "draft": false})
|
||||||
if res.Err() != nil {
|
if res.Err() != nil {
|
||||||
if res.Err() == mongo.ErrNoDocuments {
|
if res.Err() == mongo.ErrNoDocuments {
|
||||||
@@ -109,8 +105,25 @@ func (b *BlogApp) Blog(ctx context.Context, ID string, useCache bool) (*Blog, er
|
|||||||
return &blog, nil
|
return &blog, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *BlogApp) AnyBlog(ctx context.Context, ID string) (*Blog, error) {
|
||||||
|
res := b.blogCol.FindOne(ctx, bson.M{"_id": ID})
|
||||||
|
if res.Err() != nil {
|
||||||
|
if res.Err() == mongo.ErrNoDocuments {
|
||||||
|
return nil, backend.ErrNotFound
|
||||||
|
}
|
||||||
|
return nil, res.Err()
|
||||||
|
}
|
||||||
|
var blog Blog
|
||||||
|
err := res.Decode(&blog)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
b.ConvertBlog(&blog)
|
||||||
|
return &blog, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (b *BlogApp) Contains(ctx context.Context, ID string) bool {
|
func (b *BlogApp) Contains(ctx context.Context, ID string) bool {
|
||||||
res := b.blogCol.FindOne(ctx, bson.M{"_id": ID, "draft": false})
|
res := b.blogCol.FindOne(ctx, bson.M{"_id": ID})
|
||||||
return res.Err() == nil
|
return res.Err() == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,7 +140,7 @@ func (b *BlogApp) reqBlog(w http.ResponseWriter, r *http.Request) {
|
|||||||
backend.ReturnError(w, http.StatusBadRequest, "badRequest", "Must provide a blogID")
|
backend.ReturnError(w, http.StatusBadRequest, "badRequest", "Must provide a blogID")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
blog, err := b.Blog(r.Context(), blogID, true)
|
blog, err := b.Blog(r.Context(), blogID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err == backend.ErrNotFound {
|
if err == backend.ErrNotFound {
|
||||||
backend.ReturnError(w, http.StatusNotFound, "notFound", "Not blog found with the given ID")
|
backend.ReturnError(w, http.StatusNotFound, "notFound", "Not blog found with the given ID")
|
||||||
|
|||||||
Reference in New Issue
Block a user