package handlers import ( "context" oapi "nyanimedb/api" sqlc "nyanimedb/sql" "strconv" "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 }