added media fixes, search, push updates, pwa, metrics. preparing release 1.0
CI / Go (build + vet + test) (push) Canceled after 0s
CI / Web (build + lint) (push) Canceled after 0s

This commit is contained in:
vantablackTea
2026-09-27 23:26:15 +03:00
parent 855a62755c
commit 6fc6d977bf
59 changed files with 6823 additions and 113 deletions
+14 -6
View File
@@ -1,7 +1,6 @@
package api
import (
"encoding/json"
"net/http"
"strconv"
"strings"
@@ -105,8 +104,7 @@ type createConversationRequest struct {
func (h *apiHandler) createConversation(w http.ResponseWriter, r *http.Request) {
userID, _ := userIDFrom(r.Context())
var req createConversationRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
writeError(w, http.StatusBadRequest, "invalid json")
if !decodeJSON(w, r, &req) {
return
}
@@ -212,7 +210,10 @@ func (h *apiHandler) addMember(w http.ResponseWriter, r *http.Request) {
var req struct {
UserID int64 `json:"user_id"`
}
if err := json.NewDecoder(r.Body).Decode(&req); err != nil || req.UserID <= 0 {
if !decodeJSON(w, r, &req) {
return
}
if req.UserID <= 0 {
writeError(w, http.StatusBadRequest, "invalid user_id")
return
}
@@ -358,8 +359,7 @@ func (h *apiHandler) sendMessage(w http.ResponseWriter, r *http.Request) {
}
var req sendMessageRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
writeError(w, http.StatusBadRequest, "invalid json")
if !decodeJSON(w, r, &req) {
return
}
if req.Body == "" && req.MediaID == nil {
@@ -401,6 +401,14 @@ func (h *apiHandler) sendMessage(w http.ResponseWriter, r *http.Request) {
}
h.hub.PublishMessageCreated(convID, wsEvent)
if h.notifier != nil {
senderName := ""
if sender, err := h.store.GetUserByID(r.Context(), userID); err == nil {
senderName = sender.DisplayName
}
h.notifier.notifyMembers(r.Context(), convID, userID, msg.ID, senderName, msg.Body)
}
out := toMessageJSON(msg)
if attached != nil {
md := toMediaJSON(attached)