internal/pdf¶
github.com/gamidoc/backend/internal/pdf
Types¶
Builder¶
type Builder struct{}
CustomTemplate¶
type CustomTemplate struct {
EmailDelivery¶
type EmailDelivery struct {
FPDFGenerator¶
type FPDFGenerator struct{}
Generated¶
type Generated struct {
GenerateOptions¶
type GenerateOptions struct {
Generator¶
type Generator interface {
GotenbergHTMLRenderer¶
type GotenbergHTMLRenderer struct {
Handler¶
type Handler struct {
HTMLDocument¶
type HTMLDocument struct {
HTMLRenderer¶
type HTMLRenderer interface {
InstrumentEntry¶
type InstrumentEntry struct {
MethodEntry¶
type MethodEntry struct {
PlanData¶
type PlanData struct {
ProjectRecommendationService¶
type ProjectRecommendationService interface {
ProjectRepository¶
type ProjectRepository interface {
RecommendationService¶
type RecommendationService interface {
Service¶
type Service struct {
SessionRecommendationService¶
type SessionRecommendationService interface {
SessionRepository¶
type SessionRepository interface {
Functions¶
Builder.BuildFromProject¶
func (b *Builder) BuildFromProject(item project.Project, methodRecs []recommendation.Recommendation, instrumentRecs []recommendation.Recommendation) (PlanData, error) {
Builder.BuildFromSession¶
func (b *Builder) BuildFromSession(item session.Session, methodRecs []recommendation.Recommendation, instrumentRecs []recommendation.Recommendation) (PlanData, error) {
FPDFGenerator.Generate¶
func (g *FPDFGenerator) Generate(data PlanData) ([]byte, error) {
GotenbergHTMLRenderer.Render¶
func (r *GotenbergHTMLRenderer) Render(ctx context.Context, document HTMLDocument) ([]byte, error) {
Handler.Download¶
func (h *Handler) Download(w http.ResponseWriter, r *http.Request) {
Handler.ProjectDownload¶
func (h *Handler) ProjectDownload(w http.ResponseWriter, r *http.Request) {
Handler.ProjectGenerate¶
func (h *Handler) ProjectGenerate(w http.ResponseWriter, r *http.Request) {
Handler.SessionDownload¶
func (h *Handler) SessionDownload(w http.ResponseWriter, r *http.Request) {
Handler.SessionGenerate¶
func (h *Handler) SessionGenerate(w http.ResponseWriter, r *http.Request) {
NewBuilder¶
func NewBuilder() *Builder {
NewFPDFGenerator¶
func NewFPDFGenerator() *FPDFGenerator {
NewGotenbergHTMLRenderer¶
func NewGotenbergHTMLRenderer(endpoint string, timeout time.Duration) *GotenbergHTMLRenderer {
NewHandler¶
func NewHandler(service *Service) *Handler {
NewService¶
func NewService(
RenderCustomHTML¶
func RenderCustomHTML(data PlanData, custom CustomTemplate) (string, error) {
Service.Download¶
func (s *Service) Download(ctx context.Context, key string) ([]byte, error) {
Service.DownloadProjectPDF¶
func (s *Service) DownloadProjectPDF(ctx context.Context, userID, projectID string) ([]byte, error) {
Service.DownloadSessionPDF¶
func (s *Service) DownloadSessionPDF(ctx context.Context, sessionID string) ([]byte, error) {
Service.GenerateProjectPDF¶
func (s *Service) GenerateProjectPDF(ctx context.Context, userID string, projectID string, notifyEmail string) (Generated, error) {
Service.GenerateProjectPDFWithOptions¶
func (s *Service) GenerateProjectPDFWithOptions(ctx context.Context, userID string, projectID string, options GenerateOptions) (Generated, error) {
Service.GenerateSessionPDF¶
func (s *Service) GenerateSessionPDF(ctx context.Context, sessionID string, notifyEmail string) (Generated, error) {
Service.GenerateSessionPDFWithOptions¶
func (s *Service) GenerateSessionPDFWithOptions(ctx context.Context, sessionID string, options GenerateOptions) (Generated, error) {
Service.WithHTMLRenderer¶
func (s *Service) WithHTMLRenderer(renderer HTMLRenderer) *Service {
Variables¶
ErrInvalidNotifyEmail¶
var ErrInvalidNotifyEmail = fmt.Errorf("invalid notify email")
ErrInvalidPDFTemplate¶
var ErrInvalidPDFTemplate = errors.New("invalid pdf template")
ErrPDFNotFound¶
var ErrPDFNotFound = fmt.Errorf("pdf not found")
ErrPDFRendererUnavailable¶
var ErrPDFRendererUnavailable = errors.New("pdf html renderer unavailable")