docxTemplater/templategen/templategen.go
Danil Solovyov fba01b2518 Changes:
- Добавлена проверка токенов при запросе /amo/state
  - Исправлена работа с amo oauth-токенами
  - Добавлены примеры шаблонизатора
  - Добавлена возможность генерации и создания шаблонов из примеров
  - В ответ генератора добавлены ссылки для скачивания сгенерированных файлов
  - Вернул очиску temp после загрузки файла в Яндекс.Диск
  - yadisk.UploadResources - добавлено ожидание окончания отправки файла и таймаут в 5 секунд для отправки файла
  - Добавлены эндпоинты для загрузки файлов в хранилища
  - Актуализирован генератор по вебхуку
  - Обновлены генератор по данным
  - Обновлен генератор по лиду
2022-11-25 00:37:47 +05:00

64 lines
1.1 KiB
Go

package templategen
import (
"fmt"
docTemp "github.com/opencontrol/doc-template"
"io"
"net/http"
"os"
"time"
)
const (
PathExamples = "./static/examples/docx"
TempDownloaded = "./tmp/downloaded"
TempGenerated = "./tmp/generated"
)
func GenerateDocName(name string) string {
return fmt.Sprintf("%v_%v.docx", name, time.Now().UnixNano())
}
func GenerateFile(filename string, data interface{}) error {
dc, err := docTemp.GetTemplate(TempDownloaded + "/" + filename)
dc.Template.Option("missingkey=zero")
if err != nil {
return err
}
dc.Parse()
return dc.Execute(TempGenerated+"/"+filename, data)
}
// DownloadDocument - загружает документ в filepath из url
func DownloadDocument(filepath, url string) error {
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
// Create the file
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
// Write the body to file
_, err = io.Copy(out, resp.Body)
return err
}
func DeleteDocument(filepath string) error {
return os.Remove(filepath)
}
func ShareDocument(filepath string) (error, string) {
return nil, ""
}