Feed insertions and other feed stuff
This commit is contained in:
parent
72e1c67488
commit
5232bb0741
7 changed files with 134 additions and 8 deletions
|
@ -448,3 +448,53 @@ func requestAs(w http.ResponseWriter, r *http.Request) {
|
|||
body, _ := io.ReadAll(res.Body)
|
||||
_, _ = fmt.Fprint(w, string(body))
|
||||
}
|
||||
|
||||
func updateUser(w http.ResponseWriter, r *http.Request) {
|
||||
type Inbound struct {
|
||||
UserId string
|
||||
Displayname *string
|
||||
Description *string
|
||||
RestrictedFollow *bool
|
||||
}
|
||||
log := hlog.FromRequest(r)
|
||||
var data Inbound
|
||||
err := json.NewDecoder(r.Body).Decode(&data)
|
||||
if err != nil {
|
||||
_ = webutils.ProblemDetailsStatusOnly(w, http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
queryStart := dbgen.User.Where(dbgen.User.ID.Eq(data.UserId))
|
||||
user, err := queryStart.First()
|
||||
switch err {
|
||||
case gorm.ErrRecordNotFound:
|
||||
_ = webutils.ProblemDetailsStatusOnly(w, http.StatusNotFound)
|
||||
return
|
||||
case nil:
|
||||
default:
|
||||
log.Error().Err(err).Msg("Db error while trying to fetch user for updating")
|
||||
_ = webutils.ProblemDetailsStatusOnly(w, http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
updateNeeded := false
|
||||
if data.Displayname != nil {
|
||||
user.DisplayName = *data.Displayname
|
||||
updateNeeded = true
|
||||
}
|
||||
if data.Description != nil {
|
||||
user.Description = *data.Description
|
||||
updateNeeded = true
|
||||
}
|
||||
if data.RestrictedFollow != nil {
|
||||
user.RestrictedFollow = *data.RestrictedFollow
|
||||
updateNeeded = true
|
||||
}
|
||||
if !updateNeeded {
|
||||
return
|
||||
}
|
||||
err = queryStart.Save(user)
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("Failed to update user with new data")
|
||||
_ = webutils.ProblemDetailsStatusOnly(w, http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue