From a0140ec0a71a67c731c5838fc3348c3abb3d5f54 Mon Sep 17 00:00:00 2001 From: Sisi Date: Sun, 19 Apr 2026 00:37:49 +0200 Subject: [PATCH] add getting user --- docker/minIO/.gitignore | 3 +- main.go | 1 + packages/httpRequest/connectionsAndDms.go | 1 + packages/httpRequest/user.go | 35 ++++++++++++++++++++++- packages/types/types.go | 24 ++++++++-------- 5 files changed, 50 insertions(+), 14 deletions(-) diff --git a/docker/minIO/.gitignore b/docker/minIO/.gitignore index 6320cd2..5cc4007 100644 --- a/docker/minIO/.gitignore +++ b/docker/minIO/.gitignore @@ -1 +1,2 @@ -data \ No newline at end of file +data +config diff --git a/main.go b/main.go index 3db5556..28560d3 100644 --- a/main.go +++ b/main.go @@ -38,6 +38,7 @@ func main() { http.HandleFunc("/mod/user/about", withCORS(httpRequest.HandleUserModProfile)) http.HandleFunc("/mod/connection/accept", withCORS(httpRequest.HandleUserElevateConnection)) + 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)) diff --git a/packages/httpRequest/connectionsAndDms.go b/packages/httpRequest/connectionsAndDms.go index 9f02bc3..1844039 100644 --- a/packages/httpRequest/connectionsAndDms.go +++ b/packages/httpRequest/connectionsAndDms.go @@ -333,6 +333,7 @@ func HandleUserGetConnections(response http.ResponseWriter, request *http.Reques return } ctx := request.Context() + user, err := getUserByToken(ctx, request.FormValue("token")) if err != nil { http.Error(response, "invalid token", http.StatusUnauthorized) diff --git a/packages/httpRequest/user.go b/packages/httpRequest/user.go index 8938f33..54ac9c1 100644 --- a/packages/httpRequest/user.go +++ b/packages/httpRequest/user.go @@ -314,6 +314,39 @@ func HandleUserModProfileBg(response http.ResponseWriter, request *http.Request) http.Error(response, "internal server error", http.StatusInternalServerError) return } - + response.WriteHeader(http.StatusAccepted) } + +func HandleUserGetUser(response http.ResponseWriter, request *http.Request) { + if !postValidCheckWithResponseOnFail(&response, request, postNormal) { + return + } + ctx := request.Context() + + _, err := getUserByToken(ctx, request.FormValue("token")) + if err != nil { + http.Error(response, "invalid token", http.StatusUnauthorized) + return + } + + targetId, err := convertions.ConvertStringUuid(request.FormValue("targetid")) + if err != nil { + http.Error(response, "invalid userid", http.StatusUnauthorized) + return + } + target, err := getUserById(ctx, targetId) + if err != nil { + http.Error(response, "invalid userid", http.StatusUnauthorized) + return + } + + json, err := json2.Marshal(target) + if err != nil { + http.Error(response, "json parse error", http.StatusInternalServerError) + return + } + + response.WriteHeader(http.StatusAccepted) + response.Write(json) +} diff --git a/packages/types/types.go b/packages/types/types.go index f5a8f88..3d5345d 100644 --- a/packages/types/types.go +++ b/packages/types/types.go @@ -25,18 +25,18 @@ func (r Rgba) GetRandom() *Rgba { } type User struct { - Mu sync.RWMutex - Name string - Pronouns string - Description string - Avatar string - ProfileBg string - PasswordHash string - CreatedAt time.Time - WsConn *websocket.Conn - Id uuid.UUID - Connections map[uuid.UUID]*Connection - Color *Rgba + Mu sync.RWMutex `json:"-"` + Name string `json:"name"` + Pronouns string `json:"pronouns"` + Description string `json:"description"` + Avatar string `json:"avatar"` + ProfileBg string `json:"profileBg"` + PasswordHash string `json:"passwordHash"` + CreatedAt time.Time `json:"createdAt"` + WsConn *websocket.Conn `json:"-"` + Id uuid.UUID `json:"-"` + Connections map[uuid.UUID]*Connection `json:"-"` + Color *Rgba `json:"color"` } type UserProfileUpdateList struct {