package Messages import ( "encoding/json" "io/ioutil" "net/http" "git.tovijaeschke.xyz/tovi/Capsule/Backend/Database" "git.tovijaeschke.xyz/tovi/Capsule/Backend/Models" "github.com/gorilla/mux" ) type rawChangeMessageExpiry struct { MessageExpiry string `json:"message_expiry"` } // ChangeUserMessageExpiry handles changing default message expiry for user func ChangeConversationMessageExpiry(w http.ResponseWriter, r *http.Request) { var ( // user Models.User changeMessageExpiry rawChangeMessageExpiry conversationDetail Models.ConversationDetail requestBody []byte urlVars map[string]string detailID string ok bool err error ) urlVars = mux.Vars(r) detailID, ok = urlVars["detailID"] if !ok { http.Error(w, "Not Found", http.StatusNotFound) return } conversationDetail, err = Database.GetConversationDetailByID(detailID) if err != nil { http.Error(w, "Not Found", http.StatusNotFound) return } // Ignore error here, as middleware should handle auth // TODO: Check if user in conversation // user, _ = Auth.CheckCookieCurrentUser(w, r) requestBody, err = ioutil.ReadAll(r.Body) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } err = json.Unmarshal(requestBody, &changeMessageExpiry) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } err = conversationDetail.MessageExpiryDefault.Scan(changeMessageExpiry.MessageExpiry) if err != nil { http.Error(w, "Error", http.StatusUnprocessableEntity) return } err = Database.UpdateConversationDetail( &conversationDetail, ) if err != nil { http.Error(w, "Error", http.StatusInternalServerError) return } w.WriteHeader(http.StatusNoContent) }