Feat: add exit room
This commit is contained in:
@ -79,8 +79,7 @@ func saveFullInfo(fi *models.FullInfo) error {
|
||||
if err := saveState(fi.State.Username, fi.State); err != nil {
|
||||
return err
|
||||
}
|
||||
// can room be nil?
|
||||
// if fi.Room == nil {
|
||||
// if fi.Room == nil { // can be null on exit
|
||||
// return nil
|
||||
// }
|
||||
if err := saveRoom(fi.Room); err != nil {
|
||||
|
@ -81,3 +81,29 @@ func HandleHome(w http.ResponseWriter, r *http.Request) {
|
||||
log.Error("failed to exec templ;", "error", err, "templ", "base")
|
||||
}
|
||||
}
|
||||
|
||||
func HandleExit(w http.ResponseWriter, r *http.Request) {
|
||||
tmpl, err := template.ParseGlob("components/*.html")
|
||||
if err != nil {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
fi, err := getFullInfoByCtx(r.Context())
|
||||
if err != nil {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
exitedRoom := fi.ExitRoom()
|
||||
if err := saveRoom(exitedRoom); err != nil {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
if err := saveState(fi.State.Username, fi.State); err != nil {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
fi.List = listPublicRooms()
|
||||
if err := tmpl.ExecuteTemplate(w, "base", fi); err != nil {
|
||||
log.Error("failed to exec templ;", "error", err, "templ", "base")
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user