Skip to content

Commit

Permalink
Merge pull request #3 from moul/dev/moul/db
Browse files Browse the repository at this point in the history
  • Loading branch information
moul committed Jun 26, 2020
2 parents 7d51d03 + f929619 commit a232002
Show file tree
Hide file tree
Showing 9 changed files with 405 additions and 97 deletions.
52 changes: 27 additions & 25 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ run-server: install
.PHONY: packr
packr:
(cd static; git clean -fxd)
packr2
cd pkg/sgtm && packr2

.PHONY: deploy
deploy: docker.push
Expand All @@ -48,36 +48,38 @@ GEN_DEPS := $(PROTOS_SRC) Makefile
generate: gen.sum
gen.sum: $(GEN_DEPS)
shasum $(GEN_DEPS) | sort > gen.sum.tmp
@diff -q gen.sum gen.sum.tmp || ( \
set -xe; \
GO111MODULE=on go mod vendor; \
docker run \
--user=`id -u` \
--volume="$(PWD):/go/src/moul.io/sgtm" \
--workdir="/go/src/moul.io/sgtm" \
--entrypoint="sh" \
--rm \
moul/moul-bot-protoc:1 \
-xec 'make generate_local'; \
make tidy \
)
@diff -q gen.sum gen.sum.tmp || make generate.protoc generate.sum
@rm -f gen.sum.tmp

PROTOC_OPTS = -I ./api:/protobuf
.PHONY: generate_local
generate_local:
@set -e; for proto in $(PROTOS_SRC); do ( set -xe; \
protoc $(PROTOC_OPTS) \
.PHONY: generate.sum
generate.sum:
shasum $(GEN_DEPS) | sort > gen.sum.tmp
mv gen.sum.tmp gen.sum

.PHONY: generate.protoc
generate.protoc:
go install github.com/alta/protopatch/cmd/protoc-gen-go-patch
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
go install google.golang.org/protobuf/cmd/protoc-gen-go
@set -e; for proto in $(PROTOS_SRC); do ( set -e; \
proto_dirs=./api:`go list -m -f {{.Dir}} github.com/alta/protopatch`:`go list -m -f {{.Dir}} google.golang.org/protobuf`:`go list -m -f {{.Dir}} github.com/grpc-ecosystem/grpc-gateway`/third_party/googleapis; \
set -x; \
protoc \
-I $$proto_dirs \
--grpc-gateway_out=logtostderr=true:"$(GOPATH)/src" \
--go_out="$(GOPATH)/src" \
--go-grpc_out="$(GOPATH)/src" \
--go-patch_out=plugin=go,paths=import:$(GOPATH)/src \
--go-patch_out=plugin=go-grpc,requireUnimplementedServers=false,paths=import:$(GOPATH)/src \
"$$proto" \
); done
goimports -w ./pkg ./cmd ./internal
shasum $(GEN_SRC) | sort > gen.sum.tmp
mv gen.sum.tmp gen.sum

.PHONY: gen.clean
gen.clean:
rm -f gen.sum $(wildcard */*/*.pb.go */*/*.pb.gw.go */*/*/*_grpc.pb.go)

.PHONY: clean
clean:
rm -f gen.sum $(wildcard */*/*.pb.go */*/*.pb.gw.go)
clean: generate.clean
@# packr

.PHONY: regenerate
regenerate: gen.clean generate
22 changes: 22 additions & 0 deletions api/sgtm.proto
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ package sgtm;
option go_package = "moul.io/sgtm/pkg/sgtmpb";

import "google/api/annotations.proto";
import "google/protobuf/timestamp.proto";
import "patch/go.proto";
import "patch/go/field.proto";

service WebAPI {
rpc Ping(Ping.Request) returns (Ping.Response) { option (google.api.http) = {get: "/api/ping"}; }
Expand All @@ -23,3 +26,22 @@ message Status {
string hostname = 2;
}
}

/// Models

message User {
int64 id = 1 [(go.field.options) = {name: 'ID', tags: 'gorm:"primary_key"'}];
google.protobuf.Timestamp created_at = 2;
google.protobuf.Timestamp updated_at = 3;

string email = 4 [(go.field.options) = {tags: 'gorm:"size:255;not null;index:,unique"'}];
string username = 5 [(go.field.options) = {tags: 'gorm:"size:32;not null;default:\'\'"'}];
string firstname = 6 [(go.field.options) = {tags: 'gorm:"size:255;not null;default:\'\'"'}];
string lastname = 7 [(go.field.options) = {tags: 'gorm:"size:255;not null;default:\'\'"'}];
}

message Post {
int64 id = 1 [(go.field.options) = {name: 'ID', tags: 'gorm:"primary_key"'}];
User user = 2;
int64 user_id = 3 [(go.field.options) = {name: 'UserID'}];
}
3 changes: 2 additions & 1 deletion gen.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 14 additions & 8 deletions go.mod

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit a232002

Please sign in to comment.