Skip to content

Commit 62a8671

Browse files
authored
Merge pull request #20 from RobyFerro/improve-kernel
Improve kernel
2 parents 9d67066 + 07d2744 commit 62a8671

21 files changed

+124
-157
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ All notable changes to the "Go-Web Framework" will be documented in this file.
44

55
## [Unreleased]
66

7+
## [v0.8.0-beta] - 2021-09-02
8+
### Changed
9+
- Abstract CLI command structure
10+
- Improved kernel registry removing useless declaration.
11+
- Implemented HTTP router in base entities
712

813
## [v0.7.1-beta] - 2021-09-02
914
### Fixed

application.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ type BaseEntities struct {
1919
CommandServices register.ServiceRegister
2020
Middlewares register.MiddlewareRegister
2121
Models register.ModelRegister
22-
Router []kernel.HTTRouter
22+
Router []register.HTTPRouter
2323
}
2424

2525
// Start will run the HTTP web server
@@ -33,7 +33,7 @@ func StartCommand(args []string, e BaseEntities) {
3333
startup(e)
3434

3535
c := kernel.BuildCommandContainer()
36-
cmd := kernel.Commands.List[args[0]]
36+
cmd := kernel.Commands[args[0]]
3737
if cmd == nil {
3838
fmt.Println("Command not found!")
3939
os.Exit(1)
@@ -63,46 +63,47 @@ func RegisterBaseEntities(entities BaseEntities) {
6363
kernel.Controllers = entities.Controllers
6464
kernel.Middlewares = entities.Middlewares
6565
kernel.Models = entities.Models
66+
kernel.Router = entities.Router
6667

6768
mergeCommands(entities.Commands)
68-
mergeServices(entities.Services.List)
69+
mergeServices(entities.Services)
6970
mergeMiddleware(entities.Middlewares)
7071

71-
mergeSingletonServices(entities.SingletonServices.List)
72-
mergeCommandServices(entities.CommandServices.List)
72+
mergeSingletonServices(entities.SingletonServices)
73+
mergeCommandServices(entities.CommandServices)
7374
}
7475

7576
// Merge services with defaults
7677
func mergeServices(services []interface{}) {
7778
for _, s := range services {
78-
kernel.Services.List = append(kernel.Services.List, s)
79+
kernel.Services = append(kernel.Services, s)
7980
}
8081
}
8182

8283
// Merge singleton services with defaults
8384
func mergeSingletonServices(services []interface{}) {
8485
for _, s := range services {
85-
kernel.SingletonServices.List = append(kernel.SingletonServices.List, s)
86+
kernel.SingletonServices = append(kernel.SingletonServices, s)
8687
}
8788
}
8889

8990
// MergeCommands will merge system command with customs
9091
func mergeCommands(commands register.CommandRegister) {
91-
for i, c := range commands.List {
92-
kernel.Commands.List[i] = c
92+
for i, c := range commands {
93+
kernel.Commands[i] = c
9394
}
9495
}
9596

9697
// MergeCommands will merge system command with customs
9798
func mergeMiddleware(mw register.MiddlewareRegister) {
98-
for i, c := range mw.List {
99-
kernel.Middlewares.List[i] = c
99+
for i, c := range mw {
100+
kernel.Middlewares[i] = c
100101
}
101102
}
102103

103104
// MergeCommands will merge system command with customs
104105
func mergeCommandServices(services []interface{}) {
105106
for _, s := range services {
106-
kernel.CommandServices.List = append(kernel.CommandServices.List, s)
107+
kernel.CommandServices = append(kernel.CommandServices, s)
107108
}
108109
}

cli/cmd_create.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cli
22

33
import (
44
"fmt"
5+
"github.com/RobyFerro/go-web-framework/register"
56
"github.com/RobyFerro/go-web-framework/tool"
67
"io/ioutil"
78
"log"
@@ -13,9 +14,7 @@ import (
1314

1415
// CmdCreate will create a new CLI command.
1516
type CmdCreate struct {
16-
Signature string
17-
Description string
18-
Args string
17+
register.Command
1918
}
2019

2120
// Register this command

cli/controller_create.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cli
22

33
import (
44
"fmt"
5+
"github.com/RobyFerro/go-web-framework/register"
56
"github.com/RobyFerro/go-web-framework/tool"
67
"io/ioutil"
78
"log"
@@ -14,9 +15,7 @@ import (
1415

1516
// ControllerCreate will create a new controller
1617
type ControllerCreate struct {
17-
Signature string
18-
Description string
19-
Args string
18+
register.Command
2019
}
2120

2221
// Register this command

cli/database_seed.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ import (
1111

1212
// Seeder will handle database seeding.
1313
type Seeder struct {
14-
Signature string
15-
Description string
16-
Args string
14+
register.Command
1715
}
1816

1917
// Register this command
@@ -27,15 +25,15 @@ func (c *Seeder) Register() {
2725
func (c *Seeder) Run(db *gorm.DB, models register.ModelRegister) {
2826
fmt.Println("Execute database seeding...")
2927
if len(c.Args) > 0 {
30-
extractSpecificModel(c.Args, &models.List)
28+
extractSpecificModel(c.Args, &models)
3129
}
3230

33-
seed(models.List, db)
31+
seed(models, db)
3432
}
3533

3634
// Extract the specified models from model list
37-
func extractSpecificModel(name string, models *[]interface{}) {
38-
var newModels []interface{}
35+
func extractSpecificModel(name string, models *register.ModelRegister) {
36+
var newModels register.ModelRegister
3937

4038
for _, m := range *models {
4139
modelName := reflect.TypeOf(m).Name()

cli/generate_key.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"crypto/rand"
55
"crypto/sha256"
66
"fmt"
7+
"github.com/RobyFerro/go-web-framework/register"
78
"github.com/RobyFerro/go-web-framework/tool"
89
"io/ioutil"
910
"log"
@@ -12,9 +13,7 @@ import (
1213

1314
// GenerateKey will generate Go-Web application key in main config.yml file
1415
type GenerateKey struct {
15-
Signature string
16-
Description string
17-
Args string
16+
register.Command
1817
}
1918

2019
// Register this command

cli/middleware_create.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cli
22

33
import (
44
"fmt"
5+
"github.com/RobyFerro/go-web-framework/register"
56
"github.com/RobyFerro/go-web-framework/tool"
67
"io/ioutil"
78
"log"
@@ -13,9 +14,7 @@ import (
1314

1415
// MiddlewareCreate will create a new http middleware
1516
type MiddlewareCreate struct {
16-
Signature string
17-
Description string
18-
Args string
17+
register.Command
1918
}
2019

2120
// Register this command

cli/migration_create.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cli
22

33
import (
44
"fmt"
5+
"github.com/RobyFerro/go-web-framework/register"
56
"github.com/RobyFerro/go-web-framework/tool"
67
"io/ioutil"
78
"log"
@@ -13,9 +14,7 @@ import (
1314
// UP: Work only for migrate operation
1415
// DOWN: Work only for rollback operation
1516
type MigrationCreate struct {
16-
Signature string
17-
Description string
18-
Args string
17+
register.Command
1918
}
2019

2120
// Register this command

cli/migration_rollback.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cli
22

33
import (
44
"fmt"
5+
"github.com/RobyFerro/go-web-framework/register"
56
"io/ioutil"
67
"log"
78
"strconv"
@@ -12,9 +13,7 @@ import (
1213

1314
// MigrateRollback will rollback some migration in your database
1415
type MigrateRollback struct {
15-
Signature string
16-
Description string
17-
Args string
16+
register.Command
1817
}
1918

2019
// Register this command

cli/migration_up.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cli
33
import (
44
"crypto/sha256"
55
"fmt"
6+
"github.com/RobyFerro/go-web-framework/register"
67
"github.com/RobyFerro/go-web-framework/tool"
78
"io/ioutil"
89
"log"
@@ -15,9 +16,7 @@ import (
1516

1617
// MigrationUp will execute database migration
1718
type MigrationUp struct {
18-
Signature string
19-
Description string
20-
Args string
19+
register.Command
2120
}
2221

2322
// Register command

0 commit comments

Comments
 (0)