52 lines
1.2 KiB
Go
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)
|
|
}
|