fix: make PATCH /users/@me work with names/pronouns
This commit is contained in:
		
							parent
							
								
									7590c2ef9c
								
							
						
					
					
						commit
						e4d028bbad
					
				
					 1 changed files with 37 additions and 1 deletions
				
			
		|  | @ -34,7 +34,12 @@ func (s *Server) patchUser(w http.ResponseWriter, r *http.Request) error { | |||
| 	} | ||||
| 
 | ||||
| 	// validate that *something* is set | ||||
| 	if req.DisplayName == nil && req.Bio == nil && req.Links == nil && req.Fields == nil { | ||||
| 	if req.DisplayName == nil && | ||||
| 		req.Bio == nil && | ||||
| 		req.Links == nil && | ||||
| 		req.Fields == nil && | ||||
| 		req.Names == nil && | ||||
| 		req.Pronouns == nil { | ||||
| 		return server.APIError{ | ||||
| 			Code:    server.ErrBadRequest, | ||||
| 			Details: "Data must not be empty", | ||||
|  | @ -106,12 +111,43 @@ func (s *Server) patchUser(w http.ResponseWriter, r *http.Request) error { | |||
| 		fields   []db.Field | ||||
| 	) | ||||
| 
 | ||||
| 	if req.Names != nil { | ||||
| 		err = s.DB.SetUserNames(ctx, tx, claims.UserID, *req.Names) | ||||
| 		if err != nil { | ||||
| 			log.Errorf("setting names for user %v: %v", claims.UserID, err) | ||||
| 			return err | ||||
| 		} | ||||
| 		names = *req.Names | ||||
| 	} else { | ||||
| 		names, err = s.DB.UserNames(ctx, claims.UserID) | ||||
| 		if err != nil { | ||||
| 			log.Errorf("getting names for user %v: %v", claims.UserID, err) | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if req.Pronouns != nil { | ||||
| 		err = s.DB.SetUserPronouns(ctx, tx, claims.UserID, *req.Pronouns) | ||||
| 		if err != nil { | ||||
| 			log.Errorf("setting pronouns for user %v: %v", claims.UserID, err) | ||||
| 			return err | ||||
| 		} | ||||
| 		pronouns = *req.Pronouns | ||||
| 	} else { | ||||
| 		pronouns, err = s.DB.UserPronouns(ctx, claims.UserID) | ||||
| 		if err != nil { | ||||
| 			log.Errorf("getting fields for user %v: %v", claims.UserID, err) | ||||
| 			return err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if req.Fields != nil { | ||||
| 		err = s.DB.SetUserFields(ctx, tx, claims.UserID, *req.Fields) | ||||
| 		if err != nil { | ||||
| 			log.Errorf("setting fields for user %v: %v", claims.UserID, err) | ||||
| 			return err | ||||
| 		} | ||||
| 		fields = *req.Fields | ||||
| 	} else { | ||||
| 		fields, err = s.DB.UserFields(ctx, claims.UserID) | ||||
| 		if err != nil { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue