package handlers import ( "context" oapi "nyanimedb/api" sqlc "nyanimedb/sql" "time" "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 } func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersUserIdTitlesRequestObject) (oapi.GetUsersUserIdTitlesResponseObject, error) { var rate int32 = 9 var review_id int64 = 3 time := time.Date(2025, 1, 15, 10, 30, 0, 0, time.UTC) var userTitles = []oapi.UserTitle{ { UserId: 101, TitleId: 2001, Status: oapi.UserTitleStatusFinished, Rate: &rate, Ctime: &time, }, { UserId: 102, TitleId: 2002, Status: oapi.UserTitleStatusInProgress, ReviewId: &review_id, Ctime: &time, }, { UserId: 103, TitleId: 2003, Status: oapi.UserTitleStatusDropped, Ctime: &time, }, } return oapi.GetUsersUserIdTitles200JSONResponse(userTitles), nil }