feat: delete usertitle implemented
All checks were successful
Build and Deploy Go App / build (push) Successful in 6m12s
Build and Deploy Go App / deploy (push) Successful in 25s

This commit is contained in:
Iron_Felix 2025-11-27 08:00:29 +03:00
parent 246fdc86b5
commit 451df61127
7 changed files with 160 additions and 492 deletions

View file

@ -16,6 +16,10 @@ import (
log "github.com/sirupsen/logrus"
)
const (
pgErrDuplicateKey = "23505"
)
func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
i := oapi.Image{
Id: u.AvatarID,
@ -37,24 +41,24 @@ func mapUser(u sqlc.GetUserByIDRow) (oapi.User, error) {
}, nil
}
func (s Server) GetUsersUserId(ctx context.Context, req oapi.GetUsersUserIdRequestObject) (oapi.GetUsersUserIdResponseObject, error) {
func (s Server) GetUsersId(ctx context.Context, req oapi.GetUsersIdRequestObject) (oapi.GetUsersIdResponseObject, error) {
userID, err := parseInt64(req.UserId)
if err != nil {
return oapi.GetUsersUserId404Response{}, nil
return oapi.GetUsersId404Response{}, nil
}
_user, err := s.db.GetUserByID(context.TODO(), userID)
if err != nil {
if err == pgx.ErrNoRows {
return oapi.GetUsersUserId404Response{}, nil
return oapi.GetUsersId404Response{}, nil
}
return nil, err
}
user, err := mapUser(_user)
if err != nil {
log.Errorf("%v", err)
return oapi.GetUsersUserId500Response{}, err
return oapi.GetUsersId500Response{}, err
}
return oapi.GetUsersUserId200JSONResponse(user), nil
return oapi.GetUsersId200JSONResponse(user), nil
}
func sqlDate2oapi(p_date pgtype.Timestamptz) *time.Time {
@ -369,7 +373,7 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
if errors.As(err, &pgErr) {
// fmt.Println(pgErr.Message) // => syntax error at end of input
// fmt.Println(pgErr.Code) // => 42601
if pgErr.Code == "23505" { //duplicate key value
if pgErr.Code == pgErrDuplicateKey { //duplicate key value
return oapi.AddUserTitle409Response{}, nil
}
} else {
@ -405,7 +409,19 @@ func (s Server) AddUserTitle(ctx context.Context, request oapi.AddUserTitleReque
// DeleteUserTitle implements oapi.StrictServerInterface.
func (s Server) DeleteUserTitle(ctx context.Context, request oapi.DeleteUserTitleRequestObject) (oapi.DeleteUserTitleResponseObject, error) {
panic("unimplemented")
params := sqlc.DeleteUserTitleParams{
UserID: request.UserId,
TitleID: request.Params.TitleId,
}
_, err := s.db.DeleteUserTitle(ctx, params)
if err != nil {
if err == pgx.ErrNoRows {
return oapi.DeleteUserTitle404Response{}, nil
}
log.Errorf("%v", err)
return oapi.DeleteUserTitle500Response{}, nil
}
return oapi.DeleteUserTitle200Response{}, nil
}
// UpdateUserTitle implements oapi.StrictServerInterface.