Basic library for transports
Go to file
2020-04-29 10:08:00 +03:00
cmd/transport-core-tool updated gin, better code 2019-12-12 12:06:38 +03:00
core adaptations for broken BC in gin 1.6.2, now gin 1.6.2 is the minimum supported version 2020-04-29 10:08:00 +03:00
.gitignore adaptations for broken BC in gin 1.6.2, now gin 1.6.2 is the minimum supported version 2020-04-29 10:08:00 +03:00
.travis.yml fixes for tests 2019-12-17 13:50:30 +03:00
go.mod adaptations for broken BC in gin 1.6.2, now gin 1.6.2 is the minimum supported version 2020-04-29 10:08:00 +03:00
go.sum adaptations for broken BC in gin 1.6.2, now gin 1.6.2 is the minimum supported version 2020-04-29 10:08:00 +03:00
LICENSE.md license badge, copyright notice 2019-12-13 10:44:06 +03:00
README.md license badge, copyright notice 2019-12-13 10:44:06 +03:00

MG Transport Library

Build Status codecov GoDoc Go Report Card License
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)
    }
}

Migration generator

This library contains helper tool for transports. You can install it via go:

$ go get -u github.com/retailcrm/mg-transport-core/cmd/transport-core-tool

Currently, it only can generate new migrations for your transport.