go

module
v0.0.0-...-cd8b1d2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 26, 2019 License: MIT

README

Build Status

GraphQL Go Services boiler plate

Why we need boilerplate

For every project need CRUD, we need to build crud for many entities in your project and it cause lot of time for it. So this boilerplate help you to generate all CRUD for project in 5 minutes by define models

How to use

Step 1: Change DIR to project delta

cd delta

Step 2: Install dependencies

Install protobuf brew install protobuf
Install dependencies make install

Step 3: Change DIR to database

cd database

Step 4: Migrate database

goose mysql <username>:<password>@/delta up

Step 5: Define entity

You can define entity as database schema in this folder pkg/generator/internal/modules
For Example: New Entity Name is <new entity>

Step 6: Generate code

Back to DIR delta
Run command make gen
This will generate code and test for <new entity> modules

Step 7: Change DIR to

internal/modules/<new entity>

Step 8: Generate Mock for testing

Run command sudo go generate
Run command go test ./... for check test pass or not

Step 9: Add to main file for init

Go to cmd/main.go

// <New Entity>
<new entity>Repository := <new entity>.NewRepository(db)
<new entity>Handler := <new entity>.NewHandler(<new entity>Repository)
<new entity>Resolver := <new entity>.NewResolver(<new entity>Handler)

resolvers := modules.NewResolver(
  companyResolver,
  featureResolver,
  permissionResolver,
  roleResolver,
  rolepermissionResolver,
  userResolver,
  <new entity>
)

Dependencies

Squirrel
GraphQL
GraphQL Handler
Strcase
Inflection
Mapstructure
Validation V9
Mysql Driver
Mux
Logrus

Contributor

@tanphamhaiduong

Directories

Path Synopsis
common
delta
cmd
internal/arguments
@generated @generated @generated @generated @generated
@generated @generated @generated @generated @generated
@generated
internal/models
@generated @generated @generated @generated @generated
@generated @generated @generated @generated @generated
internal/modules
@generated @generated @generated @generated @generated @generated
@generated @generated @generated @generated @generated @generated
internal/modules/company
@generated @generated @generated
@generated @generated @generated
internal/modules/permission
@generated @generated @generated
@generated @generated @generated
internal/modules/role
@generated @generated @generated
@generated @generated @generated
internal/modules/rolepermission
@generated @generated @generated
@generated @generated @generated
internal/modules/user
@generated @generated @generated
@generated @generated @generated
pb

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL