package Messages import ( "encoding/json" "net/http" "github.com/gofrs/uuid" "git.tovijaeschke.xyz/tovi/Envelope/Backend/Database" "git.tovijaeschke.xyz/tovi/Envelope/Backend/Models" ) type rawUpdateConversationData struct { ID string `json:"id"` Name string `json:"name"` Users []Models.ConversationDetailUser `json:"users"` UserConversations []Models.UserConversation `json:"user_conversations"` } // UpdateConversation updates the conversation data, such as title, users, etc func UpdateConversation(w http.ResponseWriter, r *http.Request) { var ( rawConversationData rawUpdateConversationData messageThread Models.ConversationDetail err error ) err = json.NewDecoder(r.Body).Decode(&rawConversationData) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } messageThread = Models.ConversationDetail{ Base: Models.Base{ ID: uuid.FromStringOrNil(rawConversationData.ID), }, Name: rawConversationData.Name, Users: rawConversationData.Users, } err = Database.UpdateConversationDetail(&messageThread) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } if len(rawConversationData.UserConversations) > 0 { err = Database.UpdateOrCreateUserConversations(&rawConversationData.UserConversations) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } } w.WriteHeader(http.StatusNoContent) }