Skip to content

Commit

Permalink
getPostsIDをキャッシュする
Browse files Browse the repository at this point in the history
  • Loading branch information
Gurrium committed Dec 18, 2023
1 parent 9c67279 commit e76c367
Showing 1 changed file with 52 additions and 22 deletions.
74 changes: 52 additions & 22 deletions webapp/go/app.go
Expand Up @@ -987,48 +987,77 @@ func getPostsID(w http.ResponseWriter, r *http.Request) {
return
}

results := []Post{}
query := `
cacheKey := []byte(fmt.Sprintf("get_posts_id_%d", pid))
var post Post

cached, err := cache.Get(cacheKey)
if err == nil {
err := sonnet.Unmarshal(cached, &post)
if err != nil {
log.Print(err)
return
}
} else if err == freecache.ErrNotFound {
results := []Post{}
query := `
SELECT posts.id, posts.user_id, posts.body, posts.mime, posts.created_at,
users.id AS "users.id", users.account_name AS "users.account_name", users.authority AS "users.authority", users.created_at AS "users.created_at"
FROM posts
JOIN users ON posts.user_id = users.id
WHERE posts.id = ? AND users.id NOT IN (?)
`

query, args, err := sqlx.In(query, pid, deletedUserIDs)
if err != nil {
log.Print(err)
return
}
query, args, err := sqlx.In(query, pid, deletedUserIDs)
if err != nil {
log.Print(err)
return
}

query = db.Rebind(query)
err = db.Select(&results, query, args...)
if err != nil {
log.Print(err)
return
}
query = db.Rebind(query)
err = db.Select(&results, query, args...)
if err != nil {
log.Print(err)
return
}

posts, err := makePosts(results, getCSRFToken(r), true)
if err != nil {
log.Print(err)
return
}
posts, err := makePosts(results, "", true)
if err != nil {
log.Print(err)
return
}

if len(posts) == 0 {
w.WriteHeader(http.StatusNotFound)
if len(posts) == 0 {
w.WriteHeader(http.StatusNotFound)
return
}

post = posts[0]

b, err := sonnet.Marshal(post)
if err != nil {
log.Print(err)
return
}

err = cache.Set(cacheKey, b, 10)
if err != nil {
log.Print(err)
return
}
} else {
log.Print(err)
return
}

p := posts[0]
post.CSRFToken = getCSRFToken(r)

me := getSessionUser(r)

templateLayout(
w,
me,
func(w io.Writer) {
templatePostID(w, p)
templatePostID(w, post)
},
)
}
Expand Down Expand Up @@ -1225,6 +1254,7 @@ func postComment(w http.ResponseWriter, r *http.Request) {
cache.Del([]byte(fmt.Sprintf("comments_%d_%t", postID, true)))
cache.Del([]byte(fmt.Sprintf("comments_%d_%t", postID, false)))
cache.Del([]byte(fmt.Sprintf("template_post_%d", postID)))
cache.Del([]byte(fmt.Sprintf("get_posts_id_%d", postID)))

flag := 0
err = db.Get(
Expand Down

0 comments on commit e76c367

Please sign in to comment.