Fixing some stuff

This commit is contained in:
Caleb Gardner
2024-11-16 07:19:16 -06:00
parent 3670f1b7a9
commit 9edd91148a
3 changed files with 28 additions and 15 deletions
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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
View File
@@ -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")