From 7f3f77bff6bfa93b7163d3bd8f584138b3be546d Mon Sep 17 00:00:00 2001 From: Sisi Date: Tue, 21 Apr 2026 18:22:56 +0200 Subject: [PATCH] changed endpoints to work as should in first place --- main.go | 48 ++++++++++++----------- packages/httpRequest/connectionsAndDms.go | 22 +++++------ packages/httpRequest/files.go | 6 +-- packages/httpRequest/user.go | 8 ++-- 4 files changed, 44 insertions(+), 40 deletions(-) diff --git a/main.go b/main.go index 6a4466c..cf9700d 100644 --- a/main.go +++ b/main.go @@ -15,10 +15,6 @@ func withCORS(h http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Headers", "token, Content-Type") - if r.Method == http.MethodOptions { - w.WriteHeader(http.StatusNoContent) - return - } h(w, r) } } @@ -28,27 +24,35 @@ func main() { postgresql.Init(ctx) minio.Init(ctx) - http.HandleFunc("/new/user", withCORS(httpRequest.HandleUserNew)) - http.HandleFunc("/new/connection", withCORS(httpRequest.HandleUserNewConnection)) - http.HandleFunc("/new/token", withCORS(httpRequest.HandleUserNewToken)) - http.HandleFunc("/new/file", withCORS(httpRequest.HandleAttachmentFileUpload)) - http.HandleFunc("/mod/user/profile", withCORS(httpRequest.HandleUserModProfile)) - http.HandleFunc("/mod/user/avatar", withCORS(httpRequest.HandleUserModAvatar)) - http.HandleFunc("/mod/user/profilebg", withCORS(httpRequest.HandleUserModProfileBg)) - http.HandleFunc("/mod/connection/elevate", withCORS(httpRequest.HandleUserElevateConnection)) - http.HandleFunc("/mod/connection/deelevate", withCORS(httpRequest.HandleUserDeElevateConnection)) + http.HandleFunc("OPTIONS /", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Headers", "token, Content-Type") + w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PATCH, DELETE, OPTIONS") + w.WriteHeader(http.StatusNoContent) + }) - http.HandleFunc("/get/user", withCORS(httpRequest.HandleUserGetUser)) - http.HandleFunc("/get/connections", withCORS(httpRequest.HandleUserGetConnections)) - http.HandleFunc("/get/connection/messages", withCORS(httpRequest.HandleUserGetConnectionMessages)) - http.HandleFunc("/get/file", withCORS(httpRequest.HandleAttachmentFileDownload)) - http.HandleFunc("/get/user/avatar", withCORS(httpRequest.HandleGetUserAvatar)) - http.HandleFunc("/get/user/profilebg", withCORS(httpRequest.HandleGetUserProfileBg)) + http.HandleFunc("POST /user", withCORS(httpRequest.HandleUserNew)) + http.HandleFunc("DELETE /user", withCORS(httpRequest.HandleUserDelete)) + http.HandleFunc("GET /user", withCORS(httpRequest.HandleUserGetUser)) + http.HandleFunc("PATCH /user/profile", withCORS(httpRequest.HandleUserModProfile)) + http.HandleFunc("PATCH /user/avatar", withCORS(httpRequest.HandleUserModAvatar)) + http.HandleFunc("PATCH /user/profilebg", withCORS(httpRequest.HandleUserModProfileBg)) + http.HandleFunc("GET /user/avatar", withCORS(httpRequest.HandleGetUserAvatar)) + http.HandleFunc("GET /user/profilebg", withCORS(httpRequest.HandleGetUserProfileBg)) - http.HandleFunc("/del/user", withCORS(httpRequest.HandleUserDelete)) - http.HandleFunc("/del/connection", withCORS(httpRequest.HandleUserDeleteConnection)) + http.HandleFunc("POST /token", withCORS(httpRequest.HandleUserNewToken)) - http.HandleFunc("/msg/user", withCORS(httpRequest.HandleDm)) + http.HandleFunc("POST /connection", withCORS(httpRequest.HandleUserNewConnection)) + http.HandleFunc("DELETE /connection", withCORS(httpRequest.HandleUserDeleteConnection)) + http.HandleFunc("POST /connection/elevate", withCORS(httpRequest.HandleUserElevateConnection)) + http.HandleFunc("POST /connection/deelevate", withCORS(httpRequest.HandleUserDeElevateConnection)) + http.HandleFunc("GET /connections", withCORS(httpRequest.HandleUserGetConnections)) + http.HandleFunc("GET /connection/messages", withCORS(httpRequest.HandleUserGetConnectionMessages)) + + http.HandleFunc("POST /file", withCORS(httpRequest.HandleAttachmentFileUpload)) + http.HandleFunc("GET /file", withCORS(httpRequest.HandleAttachmentFileDownload)) + + http.HandleFunc("POST /message", withCORS(httpRequest.HandleDm)) http.HandleFunc("/ws", wsServer.ServeWsConnection) log.Println("beep boop; server server started") diff --git a/packages/httpRequest/connectionsAndDms.go b/packages/httpRequest/connectionsAndDms.go index d7f6ebd..915e7f5 100644 --- a/packages/httpRequest/connectionsAndDms.go +++ b/packages/httpRequest/connectionsAndDms.go @@ -26,7 +26,7 @@ func HandleDm(response http.ResponseWriter, request *http.Request) { } ctx := request.Context() - user, err := getUserByToken(ctx, request.FormValue("token")) + user, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -93,7 +93,7 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http return } ctx := request.Context() - user, err := getUserByToken(ctx, request.FormValue("token")) + user, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -104,12 +104,12 @@ func HandleUserGetConnectionMessages(response http.ResponseWriter, request *http return } - before, err := convertions.ConvertStringTimestamp(request.FormValue("before")) + before, err := convertions.ConvertStringTimestamp(request.URL.Query().Get("before")) if err != nil { before = time.Now() } - messagesCap, err := convertions.StringToUint32(request.FormValue("messages")) + messagesCap, err := convertions.StringToUint32(request.URL.Query().Get("messages")) if err != nil { messagesCap = globals.MaxDirectMsgCache } @@ -162,7 +162,7 @@ func HandleUserNewConnection(response http.ResponseWriter, request *http.Request return } ctx := request.Context() - requestor, err := getUserByToken(ctx, request.FormValue("token")) + requestor, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -222,7 +222,7 @@ func HandleUserDeleteConnection(response http.ResponseWriter, request *http.Requ } ctx := request.Context() - user, err := getUserByToken(ctx, request.FormValue("token")) + user, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -274,7 +274,7 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req return } ctx := request.Context() - user, err := getUserByToken(ctx, request.FormValue("token")) + user, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -316,7 +316,7 @@ func HandleUserElevateConnection(response http.ResponseWriter, request *http.Req wsServer.WsSendMessageCloseIfTimeout(user2, types.WsEventMessage{ Type: WsEventType.ConnectionElevated, - Event: types.ConnectionStatusChangeData{ + Event: types.ConnectionStatusSetData{ Id: conn.Id, NewState: conn.State, }, @@ -335,7 +335,7 @@ func HandleUserDeElevateConnection(response http.ResponseWriter, request *http.R } ctx := request.Context() - user, err := getUserByToken(ctx, request.FormValue("token")) + user, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -363,7 +363,7 @@ func HandleUserDeElevateConnection(response http.ResponseWriter, request *http.R wsServer.WsSendMessageCloseIfTimeout(user2, types.WsEventMessage{ Type: WsEventType.ConnectionDeElevated, - Event: types.ConnectionStatusChangeData{ + Event: types.ConnectionStatusSetData{ Id: conn.Id, NewState: conn.State, }, @@ -382,7 +382,7 @@ func HandleUserGetConnections(response http.ResponseWriter, request *http.Reques } ctx := request.Context() - user, err := getUserByToken(ctx, request.FormValue("token")) + user, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return diff --git a/packages/httpRequest/files.go b/packages/httpRequest/files.go index 0d5b01c..35163cd 100644 --- a/packages/httpRequest/files.go +++ b/packages/httpRequest/files.go @@ -72,7 +72,7 @@ func HandleGetUserAvatar(response http.ResponseWriter, request *http.Request) { return } - targetId, err := convertions.ConvertStringUuid(request.FormValue("userid")) + targetId, err := convertions.ConvertStringUuid(request.URL.Query().Get("userid")) if err != nil { http.Error(response, "invalid userid", http.StatusBadRequest) return @@ -110,7 +110,7 @@ func HandleGetUserProfileBg(response http.ResponseWriter, request *http.Request) return } - targetId, err := convertions.ConvertStringUuid(request.FormValue("userid")) + targetId, err := convertions.ConvertStringUuid(request.URL.Query().Get("userid")) if err != nil { http.Error(response, "invalid userid", http.StatusBadRequest) return @@ -154,7 +154,7 @@ func HandleAttachmentFileDownload(response http.ResponseWriter, request *http.Re return } - key := request.FormValue("key") + key := request.URL.Query().Get("key") if !strings.HasPrefix(key, conn.Id.String()+"/") { http.Error(response, "no such file", http.StatusUnauthorized) return diff --git a/packages/httpRequest/user.go b/packages/httpRequest/user.go index 050afa2..94a65f8 100644 --- a/packages/httpRequest/user.go +++ b/packages/httpRequest/user.go @@ -124,7 +124,7 @@ func HandleUserDelete(response http.ResponseWriter, request *http.Request) { } ctx := request.Context() - userId, err := tokens.TokenValidateGetId(request.FormValue("token")) + userId, err := tokens.TokenValidateGetId(request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -146,7 +146,7 @@ func HandleUserModProfile(response http.ResponseWriter, request *http.Request) { } ctx := request.Context() - user, err := getUserByToken(ctx, request.FormValue("token")) + user, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return @@ -322,13 +322,13 @@ func HandleUserGetUser(response http.ResponseWriter, request *http.Request) { } ctx := request.Context() - _, err := getUserByToken(ctx, request.FormValue("token")) + _, err := getUserByToken(ctx, request.Header.Get("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) return } - targetId, err := convertions.ConvertStringUuid(request.FormValue("targetid")) + targetId, err := convertions.ConvertStringUuid(request.URL.Query().Get("targetid")) if err != nil { http.Error(response, "invalid userid", http.StatusUnauthorized) return