package Messages import ( "encoding/json" "net/http" "net/url" "strings" "git.tovijaeschke.xyz/tovi/Envelope/Backend/Api/Auth" "git.tovijaeschke.xyz/tovi/Envelope/Backend/Database" "git.tovijaeschke.xyz/tovi/Envelope/Backend/Models" ) // EncryptedConversationList returns an encrypted list of all Conversations func EncryptedConversationList(w http.ResponseWriter, r *http.Request) { var ( userConversations []Models.UserConversation userSession Models.Session returnJSON []byte err error ) userSession, err = Auth.CheckCookie(r) if err != nil { http.Error(w, "Forbidden", http.StatusUnauthorized) return } userConversations, err = Database.GetUserConversationsByUserId( userSession.UserID.String(), ) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } returnJSON, err = json.MarshalIndent(userConversations, "", " ") if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) w.Write(returnJSON) } // EncryptedConversationDetailsList returns an encrypted list of all ConversationDetails func EncryptedConversationDetailsList(w http.ResponseWriter, r *http.Request) { var ( userConversations []Models.ConversationDetail query url.Values conversationIds []string returnJSON []byte ok bool err error ) query = r.URL.Query() conversationIds, ok = query["conversation_detail_ids"] if !ok { http.Error(w, "Invalid Data", http.StatusBadGateway) return } // TODO: Fix error handling here conversationIds = strings.Split(conversationIds[0], ",") userConversations, err = Database.GetConversationDetailsByIds( conversationIds, ) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } returnJSON, err = json.MarshalIndent(userConversations, "", " ") if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) w.Write(returnJSON) }