mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-17 12:42:16 +01:00
now using latest version of unoconv, allowing to specify paper size and orientation + updating go client (#24)
This commit is contained in:
@@ -3,29 +3,40 @@ package gotenberg
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// OfficeRequest facilitates Office documents
|
||||
// conversion with the Gotenberg API.
|
||||
type OfficeRequest struct {
|
||||
FilePaths []string
|
||||
Options *OfficeOptions
|
||||
filePaths []string
|
||||
values map[string]string
|
||||
}
|
||||
|
||||
// OfficeOptions gathers all options
|
||||
// for Office documents conversion
|
||||
// with the Gotenberg API.
|
||||
type OfficeOptions struct {
|
||||
WebHookURL string
|
||||
}
|
||||
|
||||
func (office *OfficeRequest) validate() error {
|
||||
for _, fpath := range office.FilePaths {
|
||||
// NewOfficeRequest create OfficeRequest.
|
||||
func NewOfficeRequest(fpaths []string) (*OfficeRequest, error) {
|
||||
for _, fpath := range fpaths {
|
||||
if !fileExists(fpath) {
|
||||
return fmt.Errorf("%s: office file does not exist", fpath)
|
||||
return nil, fmt.Errorf("%s: file does not exist", fpath)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
return &OfficeRequest{filePaths: fpaths, values: make(map[string]string)}, nil
|
||||
}
|
||||
|
||||
// SetWebhookURL sets webhookURL form field.
|
||||
func (office *OfficeRequest) SetWebhookURL(webhookURL string) {
|
||||
office.values[webhookURL] = webhookURL
|
||||
}
|
||||
|
||||
// SetPaperSize sets paperWidth and paperHeight form fields.
|
||||
func (office *OfficeRequest) SetPaperSize(size [2]float64) {
|
||||
office.values[paperWidth] = fmt.Sprintf("%f", size[0])
|
||||
office.values[paperHeight] = fmt.Sprintf("%f", size[1])
|
||||
}
|
||||
|
||||
// SetLandscape sets landscape form field.
|
||||
func (office *OfficeRequest) SetLandscape(isLandscape bool) {
|
||||
office.values[landscape] = strconv.FormatBool(isLandscape)
|
||||
}
|
||||
|
||||
func (office *OfficeRequest) getPostURL() string {
|
||||
@@ -33,17 +44,12 @@ func (office *OfficeRequest) getPostURL() string {
|
||||
}
|
||||
|
||||
func (office *OfficeRequest) getFormValues() map[string]string {
|
||||
if office.Options == nil {
|
||||
office.Options = &OfficeOptions{}
|
||||
}
|
||||
values := make(map[string]string)
|
||||
values[webhookURL] = office.Options.WebHookURL
|
||||
return values
|
||||
return office.values
|
||||
}
|
||||
|
||||
func (office *OfficeRequest) getFormFiles() map[string]string {
|
||||
files := make(map[string]string)
|
||||
for _, fpath := range office.FilePaths {
|
||||
for _, fpath := range office.filePaths {
|
||||
files[filepath.Base(fpath)] = fpath
|
||||
}
|
||||
return files
|
||||
@@ -52,4 +58,5 @@ func (office *OfficeRequest) getFormFiles() map[string]string {
|
||||
// Compile-time checks to ensure type implements desired interfaces.
|
||||
var (
|
||||
_ = Request(new(OfficeRequest))
|
||||
_ = UnoconvRequest(new(OfficeRequest))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user