add handlers, storage(Postgres, sqlite) (#3)
Reviewed-on: #3 Co-authored-by: Evstigneev Denis <danteevstigneev@yandex.ru> Co-committed-by: Evstigneev Denis <danteevstigneev@yandex.ru>
This commit is contained in:
43
proto/docker_generate/Dockerfile
Normal file
43
proto/docker_generate/Dockerfile
Normal file
@@ -0,0 +1,43 @@
|
||||
FROM golang:1.19-bullseye
|
||||
|
||||
RUN mkdir /build
|
||||
WORKDIR /build
|
||||
|
||||
RUN apt-get update && apt-get -y install --no-install-recommends protobuf-compiler libprotobuf-dev
|
||||
|
||||
ENV PATH=${PATH}:${GOBIN}
|
||||
|
||||
ENV GEN_VALIDATE=github.com/envoyproxy/protoc-gen-validate@v1.0.2
|
||||
ENV GOOGLEAPIS=github.com/google/googleapis@v0.0.0-20200324113624-36c0febd0fa7
|
||||
ENV GRPC_GATEWAY=github.com/grpc-ecosystem/grpc-gateway@v1.16.0
|
||||
|
||||
RUN go install ${GEN_VALIDATE}
|
||||
|
||||
RUN go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway@v1.16.0 && \
|
||||
go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger@v1.16.0 && \
|
||||
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
|
||||
|
||||
RUN go install go.unistack.org/protoc-gen-go-micro/v3@latest
|
||||
|
||||
RUN go mod init proto
|
||||
RUN go get ${GOOGLEAPIS} && \
|
||||
go get ${GRPC_GATEWAY} && \
|
||||
go get google.golang.org/grpc@v1.57.0 && \
|
||||
go get -u github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway && \
|
||||
go get -u github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 && \
|
||||
go get google.golang.org/protobuf/cmd/protoc-gen-go && \
|
||||
go get go.unistack.org/micro-proto/v3@v3.3.1
|
||||
|
||||
CMD rm -rf go_generate && \
|
||||
protoc \
|
||||
--validate_out=lang=go:. \
|
||||
--go-micro_out=debug=true,components="micro|http":. \
|
||||
--go_out=. \
|
||||
--grpc-gateway_out=. \
|
||||
--proto_path=/go/pkg/mod/go.unistack.org/micro-proto/v3@v3.3.1 \
|
||||
-I=./ \
|
||||
-I=/usr/include \
|
||||
-I=/go/pkg/mod/${GEN_VALIDATE} \
|
||||
-I=/go/pkg/mod/${GOOGLEAPIS} \
|
||||
-I=/go/pkg/mod/${GRPC_GATEWAY} \
|
||||
./*.proto
|
7
proto/docker_generate/Makefile
Normal file
7
proto/docker_generate/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
#New version of proto Makefile and Dockerfile can be found
|
||||
#at https://qcm-git.mbrd.ru/service-platform/examples/makefile
|
||||
|
||||
.PHONY: proto
|
||||
proto:
|
||||
docker build -t proto:latest .
|
||||
docker run --rm --name=proto -v `pwd`:/build proto:latest
|
71
proto/docker_generate/dashboard.proto
Normal file
71
proto/docker_generate/dashboard.proto
Normal file
@@ -0,0 +1,71 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package proto;
|
||||
|
||||
option go_package = "./go_generate;go_generate";
|
||||
|
||||
import "validate/validate.proto";
|
||||
|
||||
|
||||
message ErrorRsp {
|
||||
Error error = 1 [json_name = "error"];
|
||||
}
|
||||
|
||||
message Error {
|
||||
string code = 1 [json_name = "code"];
|
||||
string title = 2 [json_name = "title"];
|
||||
string uuid = 3 [json_name = "uuid"];
|
||||
string details = 4 [json_name = "details"];
|
||||
}
|
||||
|
||||
message Package {
|
||||
uint64 id = 1 [(validate.rules).uint64.gt = 0];
|
||||
string name = 2 [(validate.rules).string.min_len = 1];
|
||||
string url = 3 [(validate.rules).string.min_len = 1];
|
||||
repeated Module modules = 4;
|
||||
repeated Issue issues = 5;
|
||||
};
|
||||
|
||||
message Module {
|
||||
uint64 id = 1 [(validate.rules).uint64.gt = 0];
|
||||
string name = 2 [(validate.rules).string.min_len = 1];
|
||||
string version = 3 [(validate.rules).string.min_len = 1];
|
||||
uint64 package = 4 [(validate.rules).uint64.gt = 0];
|
||||
}
|
||||
|
||||
message Issue {
|
||||
uint64 id = 1 [(validate.rules).uint64.gt = 0];
|
||||
uint64 status = 2 [(validate.rules).uint64.gt = 0];
|
||||
string desc = 3 [(validate.rules).string.min_len = 1];
|
||||
uint64 package = 4 [(validate.rules).uint64.gt = 0];
|
||||
repeated uint64 modules = 5;
|
||||
}
|
||||
|
||||
message Comment {
|
||||
uint64 id = 1 [(validate.rules).uint64.gt = 0];
|
||||
uint64 package = 2 [(validate.rules).uint64.gt = 0];
|
||||
string text = 3;
|
||||
uint64 created = 4 [(validate.rules).uint64.gt = 0];
|
||||
uint64 updated = 5 [(validate.rules).uint64.gt = 0];
|
||||
}
|
||||
|
||||
message ListPackageReq {}
|
||||
message ListPackageRsp{
|
||||
repeated Package packages = 1;
|
||||
}
|
||||
|
||||
message UpdateInfoPackageRsp {
|
||||
uint64 id = 1 [(validate.rules).uint64.gt = 0];
|
||||
}
|
||||
message UpdateInfoPackageReq {
|
||||
uint64 id = 1 [(validate.rules).uint64.gt = 0];
|
||||
}
|
||||
|
||||
message CommentRsp {
|
||||
uint64 idPackage = 1 [(validate.rules).uint64.gt = 0];
|
||||
string text = 2;
|
||||
}
|
||||
|
||||
message CommentReq {
|
||||
uint64 id = 1 [(validate.rules).uint64.gt = 0];
|
||||
}
|
42
proto/docker_generate/restService.proto
Normal file
42
proto/docker_generate/restService.proto
Normal file
@@ -0,0 +1,42 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package proto;
|
||||
|
||||
option go_package = "./go_generate;go_generate";
|
||||
|
||||
import "dashboard.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "protoc-gen-swagger/options/annotations.proto";
|
||||
|
||||
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_swagger) = {
|
||||
info: {
|
||||
title: "service-platform/product-services/mts-money/gateway-proto",
|
||||
version: "0";
|
||||
};
|
||||
consumes: "application/json";
|
||||
produces: "application/json";
|
||||
};
|
||||
|
||||
service DashboardService {
|
||||
rpc ListPackage(ListPackageReq) returns (ListPackageRsp) {
|
||||
option (grpc.gateway.protoc_gen_swagger.options.openapiv2_operation) = {
|
||||
operation_id: "ListPackage";
|
||||
responses: {
|
||||
key: "default";
|
||||
value: {
|
||||
description: "Error response";
|
||||
schema: {
|
||||
json_schema: {
|
||||
ref: ".go_generate.ErrorRsp";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
option (google.api.http) = {
|
||||
get: "/listPackage";
|
||||
};
|
||||
};
|
||||
rpc UpdateInfo(UpdateInfoPackageRsp) returns (UpdateInfoPackageReq) {};
|
||||
rpc AddComment(CommentRsp) returns (CommentReq) {};
|
||||
};
|
Reference in New Issue
Block a user