From b679e062747938cbd23e7b6f950b05f75eced5b4 Mon Sep 17 00:00:00 2001 From: Vyacheslav1557 Date: Fri, 16 Aug 2024 15:54:17 +0500 Subject: [PATCH] feat: init --- .gitignore | 2 ++ buf.gen.yaml | 12 +++++++ buf.yaml | 7 ++++ session/v1/session.proto | 35 +++++++++++++++++++ user/v1/user.proto | 72 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 128 insertions(+) create mode 100644 .gitignore create mode 100644 buf.gen.yaml create mode 100644 buf.yaml create mode 100644 session/v1/session.proto create mode 100644 user/v1/user.proto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..82ace7a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +pkg/go/gen \ No newline at end of file diff --git a/buf.gen.yaml b/buf.gen.yaml new file mode 100644 index 0000000..b22e3a4 --- /dev/null +++ b/buf.gen.yaml @@ -0,0 +1,12 @@ +version: v1 +managed: + enabled: true + go_package_prefix: + default: git.sch9.ru/new_gate/contracts/pkg/go/gen +plugins: + - name: go + out: pkg/go/gen + opt: paths=source_relative + - name: go-grpc + out: pkg/go/gen + opt: paths=source_relative diff --git a/buf.yaml b/buf.yaml new file mode 100644 index 0000000..1a51945 --- /dev/null +++ b/buf.yaml @@ -0,0 +1,7 @@ +version: v1 +breaking: + use: + - FILE +lint: + use: + - DEFAULT diff --git a/session/v1/session.proto b/session/v1/session.proto new file mode 100644 index 0000000..d9f09eb --- /dev/null +++ b/session/v1/session.proto @@ -0,0 +1,35 @@ +syntax = "proto3"; + +package proto.session.v1; + +import "google/protobuf/empty.proto"; + +service SessionService { + rpc Create (CreateSessionRequest) returns (CreateSessionResponse); + rpc Read (ReadSessionRequest) returns (ReadSessionResponse); + rpc Update (UpdateSessionRequest) returns (google.protobuf.Empty); + rpc Delete (DeleteSessionRequest) returns (google.protobuf.Empty); +} + +message CreateSessionRequest { + string handle = 1; + string password = 2; +} +message CreateSessionResponse { + string token = 1; +} + +message ReadSessionRequest { + string token = 1; +} +message ReadSessionResponse { + int32 user_id = 2; +} + +message UpdateSessionRequest { + string token = 1; +} + +message DeleteSessionRequest { + string token = 1; +} \ No newline at end of file diff --git a/user/v1/user.proto b/user/v1/user.proto new file mode 100644 index 0000000..25403e1 --- /dev/null +++ b/user/v1/user.proto @@ -0,0 +1,72 @@ +syntax = "proto3"; + +package proto.user.v1; + +import "google/protobuf/timestamp.proto"; +import "google/protobuf/empty.proto"; + +service UserService { + rpc CreateUser (CreateUserRequest) returns (CreateUserResponse); + rpc ReadUser (ReadUserRequest) returns (ReadUserResponse); + rpc UpdateUser (UpdateUserRequest) returns (google.protobuf.Empty); + rpc DeleteUser (DeleteUserRequest) returns (google.protobuf.Empty); +} + +enum Role { + ROLE_SPECTATOR_UNSPECIFIED = 0; + ROLE_PARTICIPANT = 1; + ROLE_MODERATOR = 2; + ROLE_ADMIN = 3; +} + +message CreateUserRequest { + message User { + string username = 1; + string password = 2; + reserved 3; + optional google.protobuf.Timestamp expires_at = 4; + Role role = 5; + } + + string token = 1; + User user = 2; +} +message CreateUserResponse { + int32 id = 1; +} + +message ReadUserRequest { + string token = 1; + int32 id = 2; +} +message ReadUserResponse { + message User { + int32 id = 1; + string username = 2; + reserved 3; + string password = 4; + google.protobuf.Timestamp expires_at = 5; + google.protobuf.Timestamp created_at = 6; + Role role = 7; + } + User user = 1; +} + +message UpdateUserRequest { + message User { + int32 id = 1; + optional string username = 2; + reserved 3; + optional string password = 4; + optional google.protobuf.Timestamp expires_at = 5; + optional Role role = 6; + } + + string token = 1; + User user = 2; +} + +message DeleteUserRequest { + string token = 1; + int32 id = 2; +} \ No newline at end of file