mirror of
https://github.com/3ybactuk/marketplace-go-service-project.git
synced 2025-10-30 14:03:45 +03:00
[hw-8] add: repo layer
This commit is contained in:
102
api/comments/v1/comments.proto
Normal file
102
api/comments/v1/comments.proto
Normal file
@@ -0,0 +1,102 @@
|
||||
syntax = "proto3";
|
||||
|
||||
import "google/protobuf/empty.proto";
|
||||
import "validate/validate.proto";
|
||||
import "google/api/annotations.proto";
|
||||
import "protoc-gen-openapiv2/options/annotations.proto";
|
||||
|
||||
option go_package = "route256/pkg/api/comments/v1;comments";
|
||||
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
|
||||
info: {
|
||||
title: "Comments Service";
|
||||
version: "1.0.0";
|
||||
};
|
||||
schemes: HTTP;
|
||||
schemes: HTTPS;
|
||||
consumes: "application/json";
|
||||
produces: "application/json";
|
||||
};
|
||||
|
||||
|
||||
message Comment {
|
||||
int64 id = 1 [(validate.rules).int64 = {gt: 0}];
|
||||
int64 user_id = 2 [(validate.rules).int64 = {gt: 0}];
|
||||
int64 sku = 3 [(validate.rules).int64 = {gt: 0}];
|
||||
string text = 4 [(validate.rules).string = {min_len:1, max_len:255}];
|
||||
string created_at = 5; // RFC3339 with ms
|
||||
}
|
||||
|
||||
message CreateCommentRequest {
|
||||
int64 user_id = 1 [(validate.rules).int64 = {gt: 0}];
|
||||
int64 sku = 2 [(validate.rules).int64 = {gt: 0}];
|
||||
string text = 3 [(validate.rules).string = {min_len:1, max_len:255}];
|
||||
}
|
||||
message CreateCommentResponse { Comment comment = 1; }
|
||||
|
||||
message GetCommentRequest {
|
||||
int64 id = 1 [(validate.rules).int64 = {gt:0}];
|
||||
}
|
||||
message GetCommentResponse { Comment comment = 1; }
|
||||
|
||||
message UpdateCommentRequest {
|
||||
int64 id = 1 [(validate.rules).int64 = {gt:0}];
|
||||
int64 user_id = 2 [(validate.rules).int64 = {gt: 0}];
|
||||
string text = 3 [(validate.rules).string = {min_len:1, max_len:255}];
|
||||
}
|
||||
message UpdateCommentResponse { Comment comment = 1; }
|
||||
|
||||
message ListBySkuRequest {
|
||||
int64 sku = 1 [(validate.rules).int64 = {gt:0}];
|
||||
}
|
||||
message ListBySkuResponse { repeated Comment comments = 1; }
|
||||
|
||||
message ListByUserRequest {
|
||||
int64 user_id = 1 [(validate.rules).int64 = {gt:0}];
|
||||
}
|
||||
message ListByUserResponse { repeated Comment comments = 1; }
|
||||
|
||||
service Comments {
|
||||
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_tag) = {
|
||||
description: "Comment Service"
|
||||
external_docs: {
|
||||
url: "https://github.com/grpc-ecosystem/grpc-gateway/blob/main/examples/internal/proto/examplepb/a_bit_of_everything.proto";
|
||||
description: "Find out more about grpc-gateway";
|
||||
}
|
||||
};
|
||||
|
||||
rpc Add(CreateCommentRequest) returns (CreateCommentResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/comment/add"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
rpc GetById(GetCommentRequest) returns (GetCommentResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/comment/get-by-id"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
rpc Edit(UpdateCommentRequest) returns (UpdateCommentResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/comment/edit"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
rpc ListBySku(ListBySkuRequest) returns (ListBySkuResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/comment/list-by-sku"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
|
||||
rpc ListByUser(ListByUserRequest) returns (ListByUserResponse) {
|
||||
option (google.api.http) = {
|
||||
post: "/comment/list-by-user"
|
||||
body: "*"
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user