s1llyw0rdz/web/handler/user_view.go
2021-11-24 07:30:19 +01:00

52 lines
1.2 KiB
Go

package handler
import (
"encoding/json"
"github.com/gorilla/mux"
"net/http"
)
func (h *Handler) showUserView(w http.ResponseWriter, r *http.Request) {
user := mux.Vars(r)["user"]
if !h.storage.UserExists(user) {
notFound(w)
return
}
statuses, err := h.storage.StatusByUsername(mux.Vars(r)["user"], 20, 0)
if err != nil {
serverError(w, err)
return
}
h.renderLayout(w, "user", map[string]interface{}{
"user": user,
"statuses": statuses,
}, "")
}
type statusjson struct {
Author string `json:"author"`
Content string `json:"content"`
TimeAgo string `json:"time_ago"`
}
func (h *Handler) showUserStatusView(w http.ResponseWriter, r *http.Request) {
user := mux.Vars(r)["user"]
if !h.storage.UserExists(user) {
notFound(w)
return
}
statuses, err := h.storage.StatusByUsername(mux.Vars(r)["user"], 1, 0)
if err != nil {
serverError(w, err)
return
}
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json")
var res statusjson
if len(statuses) > 0 {
res.Author = statuses[0].User
res.Content = statuses[0].Content
res.TimeAgo = statuses[0].TimeAgo()
}
json.NewEncoder(w).Encode(res)
}