github.com/kotovmak/go-admin@v1.1.1/tests/frameworks/chi/chi.go (about)

     1  package chi
     2  
     3  import (
     4  	// add chi adapter
     5  	_ "github.com/kotovmak/go-admin/adapter/chi"
     6  	"github.com/kotovmak/go-admin/modules/config"
     7  	"github.com/kotovmak/go-admin/modules/language"
     8  	"github.com/kotovmak/go-admin/plugins/admin/modules/table"
     9  
    10  	// add mysql driver
    11  	_ "github.com/kotovmak/go-admin/modules/db/drivers/mysql"
    12  	// add postgresql driver
    13  	_ "github.com/kotovmak/go-admin/modules/db/drivers/postgres"
    14  	// add sqlite driver
    15  	_ "github.com/kotovmak/go-admin/modules/db/drivers/sqlite"
    16  	// add mssql driver
    17  	_ "github.com/kotovmak/go-admin/modules/db/drivers/mssql"
    18  	// add adminlte ui theme
    19  	"github.com/GoAdminGroup/themes/adminlte"
    20  
    21  	"net/http"
    22  	"os"
    23  
    24  	"github.com/go-chi/chi/v5"
    25  	"github.com/kotovmak/go-admin/engine"
    26  	"github.com/kotovmak/go-admin/plugins/admin"
    27  	"github.com/kotovmak/go-admin/plugins/example"
    28  	"github.com/kotovmak/go-admin/template"
    29  	"github.com/kotovmak/go-admin/template/chartjs"
    30  	"github.com/kotovmak/go-admin/tests/tables"
    31  )
    32  
    33  func internalHandler() http.Handler {
    34  	r := chi.NewRouter()
    35  
    36  	eng := engine.Default()
    37  
    38  	adminPlugin := admin.NewAdmin(tables.Generators)
    39  	adminPlugin.AddGenerator("user", tables.GetUserTable)
    40  	examplePlugin := example.NewExample()
    41  	template.AddComp(chartjs.NewChart())
    42  
    43  	if err := eng.AddConfigFromJSON(os.Args[len(os.Args)-1]).
    44  		AddPlugins(adminPlugin, examplePlugin).Use(r); err != nil {
    45  		panic(err)
    46  	}
    47  
    48  	eng.HTML("GET", "/admin", tables.GetContent)
    49  
    50  	return r
    51  }
    52  
    53  func NewHandler(dbs config.DatabaseList, gens table.GeneratorList) http.Handler {
    54  	r := chi.NewRouter()
    55  
    56  	eng := engine.Default()
    57  
    58  	adminPlugin := admin.NewAdmin(gens)
    59  	template.AddComp(chartjs.NewChart())
    60  
    61  	if err := eng.AddConfig(&config.Config{
    62  		Databases: dbs,
    63  		UrlPrefix: "admin",
    64  		Store: config.Store{
    65  			Path:   "./uploads",
    66  			Prefix: "uploads",
    67  		},
    68  		Language:    language.EN,
    69  		IndexUrl:    "/",
    70  		Debug:       true,
    71  		ColorScheme: adminlte.ColorschemeSkinBlack,
    72  	}).
    73  		AddPlugins(adminPlugin).Use(r); err != nil {
    74  		panic(err)
    75  	}
    76  
    77  	eng.HTML("GET", "/admin", tables.GetContent)
    78  
    79  	return r
    80  }