package handlers import ( "context" oapi "nyanimedb/api" sqlc "nyanimedb/sql" "github.com/jackc/pgx/v5" "github.com/oapi-codegen/runtime/types" ) // type Server struct { // db *sqlc.Queries // } // func NewServer(db *sqlc.Queries) Server { // return Server{db: db} // } // func parseInt64(s string) (int32, error) { // i, err := strconv.ParseInt(s, 10, 64) // return int32(i), err // } func mapUser(u sqlc.GetUserByIDRow) oapi.User { return oapi.User{ AvatarId: u.AvatarID, CreationDate: &u.CreationDate, DispName: u.DispName, Id: &u.ID, Mail: (*types.Email)(u.Mail), Nickname: u.Nickname, UserDesc: u.UserDesc, } } func (s Server) GetUsersUserId(ctx context.Context, req oapi.GetUsersUserIdRequestObject) (oapi.GetUsersUserIdResponseObject, error) { userID, err := parseInt64(req.UserId) if err != nil { return oapi.GetUsersUserId404Response{}, nil } user, err := s.db.GetUserByID(context.TODO(), int64(userID)) if err != nil { if err == pgx.ErrNoRows { return oapi.GetUsersUserId404Response{}, nil } return nil, err } return oapi.GetUsersUserId200JSONResponse(mapUser(user)), nil }