Basic library for transports
Go to file
2019-09-19 14:25:07 +03:00
core travis, codecov, more tests 2019-09-19 14:16:52 +03:00
.gitignore init 2019-09-04 15:22:27 +03:00
.travis.yml set lowest version of go to 1.11 2019-09-19 14:25:07 +03:00
go.mod set lowest version of go to 1.11 2019-09-19 14:25:07 +03:00
go.sum set lowest version of go to 1.11 2019-09-19 14:25:07 +03:00
README.md update README.md 2019-09-18 14:05:06 +03:00

MG Transport Library

This library provides different functions like error-reporting, logging, localization, etc. in order to make it easier to create transports.
Usage:

package main

import (
    "os"
    "fmt"
    "html/template"

    "github.com/gin-gonic/gin"
    "github.com/gobuffalo/packr/v2"
    "github.com/retailcrm/mg-transport-core/core"
)

func main() {
    app := core.New()
    app.Config = core.NewConfig("config.yml")
    app.DefaultError = "unknown_error"
    app.TranslationsPath = "./translations"
    
    app.ConfigureRouter(func(engine *gin.Engine) {
        engine.Static("/static", "./static")
        engine.HTMLRender = app.CreateRenderer(
            func(renderer *core.Renderer) {
                // insert templates here. Example:
                r.Push("home", "templates/layout.html", "templates/home.html")
            }, 
            template.FuncMap{},
        )
    })
    
    if err := app.Prepare().Run(); err != nil {
        fmt.Printf("Fatal error: %s", err.Error())
        os.Exit(1)
    }
}

Resource embedding

packr can be used to provide resource embedding. In order to use packr you must follow this instruction, and provide boxes with templates, translations and assets to library. Example:

package main

import (
    "os"
    "fmt"
    "html/template"

    "github.com/gin-gonic/gin"
    "github.com/gobuffalo/packr/v2"
    "github.com/retailcrm/mg-transport-core/core"
)

func main() {
    static := packr.New("assets", "./static")
    templates := packr.New("templates", "./templates")
    translations := packr.New("translations", "./translate")
    
    app := core.New()
    app.Config = core.NewConfig("config.yml")
    app.DefaultError = "unknown_error"
    app.TranslationsBox = translations
    
    app.ConfigureRouter(func(engine *gin.Engine) {
        engine.StaticFS("/static", static)
        engine.HTMLRender = app.CreateRendererFS(
            templates, 
            func(renderer *core.Renderer) {
                // insert templates here. Example:
                r.Push("home", "layout.html", "home.html")
            }, 
            template.FuncMap{},
        )
    })
    
    if err := app.Prepare().Run(); err != nil {
        fmt.Printf("Fatal error: %s", err.Error())
        os.Exit(1)
    }
}