huangguangrong пре 9 месеци
родитељ
комит
e8e205d96d
3 измењених фајлова са 3103 додато и 10 уклоњено
  1. 253 0
      proto/slowwild.proto
  2. 2280 0
      slowwild/slowwildserver/slowwild.pb.go
  3. 570 10
      slowwild/slowwildserver/slowwild_grpc.pb.go

+ 253 - 0
proto/slowwild.proto

@@ -160,6 +160,231 @@ message SearchUsernameRes {
     int64 total = 2;
 }
 
+message CreatePostReq {
+    int64 user_id = 1;
+    string title = 2;
+    string content = 3;
+    repeated int64 tag_ids = 4;
+    repeated int64 at_user_ids = 5;
+    int32 type = 6; //0-图文1-视频
+    int32 visibility = 7; //可见性: 0私密 1好友可见 2关注可见 4公开
+    repeated string images = 8;
+    string video_cover = 9;
+    string video_url = 10;
+}
+
+message CreatePostRsp {
+    int64 post_id = 1;
+} 
+
+message GetTagListReq {
+    int32 page = 1;
+    int32 page_size = 2;
+    string tag_name = 3;
+}
+
+message TagItem {
+    string name = 1;
+    int64 hot_num = 2;
+    UserInfo user = 3;
+    int64 id = 4;
+    int64 created_on = 5;
+}
+
+message GetTagListRsp {
+    repeated TagItem tag_list = 1;
+    int32 total = 2;
+}
+
+message GetTagReq {
+    int32 tag_id = 1;
+}
+
+message GetTagRsp {
+    TagItem info = 1;
+}
+
+message GetPostListReq {
+    int32 page = 1;
+    int32 page_size = 2;
+    int32 search_type = 3; // 0-默认搜索1-搜索内容/标题2-话题搜索
+    int32 sort_type = 4; //0-默认创建时间排序1-热度排序
+    int32 keyword = 5; // 搜索关键字,或者对应的id
+    int64 user_id = 6; // 用户id
+}
+
+message GetPostListItem {
+    int64 id = 1;
+    UserInfo user = 2;
+    string title = 3;
+    string content_summary = 4;
+    int32 post_type = 5; //帖子类型0-普通图文1-视频
+    int64 comment_count = 6;
+    int64 upvote_count = 7;
+    int64 collection_count = 8;
+    int64 share_count = 9;
+    int32 visibillity = 10;
+    string ip_loc = 11;
+    int64 hot_num = 12;
+    repeated string images = 13;
+    string video_url = 14;
+    string video_cover = 15;
+    int64 created_on = 16;
+    repeated TagItem tags = 17;
+}
+
+message GetPostListRsp {
+    repeated GetPostListItem List = 1;
+    int64 total = 2;
+}
+
+message GetPostReq {
+    int64 user_id = 1;
+    int64 post_id = 2;
+}
+
+message GetPostRsp {
+    int64 id = 1;
+    UserInfo user = 2;
+    string title = 3;
+    string content_summary = 4;
+    int32 post_type = 5; //帖子类型0-普通图文1-视频
+    int64 comment_count = 6;
+    int64 upvote_count = 7;
+    int64 collection_count = 8;
+    int64 share_count = 9;
+    int32 visibillity = 10;
+    string ip_loc = 11;
+    int64 hot_num = 12;
+    repeated string images = 13;
+    string video_url = 14;
+    string video_cover = 15;
+    string content = 16;
+    int64 created_on = 17;
+    repeated TagItem tags = 18;
+    repeated UserInfo with_user = 19;
+    int64 latest_replied_on = 20;
+}
+
+message PostUpvoteReq {
+    int64 post_id = 1;
+    int64 user_id = 2;
+}
+
+message PostUpvoteRsp {
+    bool success = 1;
+}
+
+message PostCollectionReq {
+    int64 post_id = 1;
+    int64 user_id = 2;
+}
+
+message PostCollectionRsp {
+    bool success = 1;
+}
+
+message PostShareReq {
+    int64 post_id = 1;
+    int64 user_id = 2;
+}
+
+message PostShareRsp {
+    bool success = 1;
+}
+
+message PostCommentReq {
+    int64 post_id = 1;
+    int64 user_id = 2;
+    string content = 3;
+    string image = 4;
+    int64 at_user_id = 5;
+}
+
+message PostCommentRsp {
+    int64 comment_id = 1;
+}
+
+message PostReplyReq {
+    int64 post_id = 1;
+    int64 user_id = 2;
+    string content = 3;
+    string image = 4;
+    int64 at_user_id = 5;
+}
+
+message PostReplyRsp {
+    int64 reply_id = 1;
+}
+
+message GetPostCommentListReq {
+    int32 page = 1;
+    int32 page_size = 2;
+    int64 post_id = 3;
+    int64 user_id = 4;  
+}
+
+message RepliesItem {
+    int64 id = 1;
+    int64 post_id = 2;
+    UserInfo user = 3;
+    string ip_loc = 4;
+    string content = 5;
+    string image = 6;
+    repeated UserInfo with_user = 7;
+    int64 upvote_count = 8;
+}
+
+message CommentItem {
+    int64 id = 1;
+    int64 post_id = 2;
+    UserInfo user = 3;
+    string ip_loc = 4;
+    string content = 5;
+    string image = 6;
+    repeated UserInfo with_user = 7;
+    int64 reply_count = 8;
+    int64 upvote_count = 9;
+    repeated RepliesItem reply_item = 10;
+}
+
+message GetPostCommentListRsp {
+    repeated CommentItem list = 1;
+    int64 total = 2;
+}
+
+message GetReplyListReq {
+    int32 page = 1;
+    int32 page_size = 2;
+    int64 comment_id = 3;
+    int64 user_id = 4;  
+}
+
+message GetReplyListRsp {
+    repeated RepliesItem list = 1;
+    int64 total = 2;
+}
+
+message PostCommentUpvoteReq {
+    int64 user_id = 1;
+    int64 comment_id = 2;
+    int32 comment_type = 3; // 0- 评论1-回复
+}
+
+message PostCommentUpvoteRsp {
+    bool success = 1;
+}
+
+message PostCommentThumbsDownReq {
+    int64 user_id = 1;
+    int64 comment_id = 2;
+    int32 comment_type = 3; // 0- 评论1-回复
+}
+
+message PostCommentThumbsDownRsp {
+    bool success = 1;
+}
+
 service SlowWildServer {
     // 用户登录
     rpc Login(LoginReq) returns (LoginAndRegisterRsp);
@@ -181,4 +406,32 @@ service SlowWildServer {
     rpc GetUserProfile (GetUserProfileReq) returns (GetUserProfileRes);
     // 搜索用户名称
     rpc SearchUsername (SearchUsernameReq) returns (SearchUsernameRes);
+    // 发布帖子
+    rpc CreatePost (CreatePostReq) returns (CreatePostRsp);
+    // 获取话题列表
+    rpc GetTagList (GetTagListReq) returns (GetTagListRsp);
+    // 获取话题详情
+    rpc GetTag (GetTagReq) returns (GetTagRsp);
+    // 获取帖子列表
+    rpc GetPostList (GetPostListReq) returns (GetPostListRsp);
+    // 获取帖子详情
+    rpc GetPost (GetPostReq) returns (GetPostRsp);
+    // 点赞帖子
+    rpc PostUpvote (PostUpvoteReq) returns (PostUpvoteRsp);
+    // 分享帖子
+    rpc PostShare (PostShareReq) returns (PostShareRsp);
+    // 收藏帖子
+    rpc PostCollection (PostCollectionReq) returns (PostCollectionRsp);
+    // 发布评论
+    rpc PostComment (PostCommentReq) returns (PostCommentRsp);
+    // 发布回复
+    rpc PostReply (PostReplyReq) returns (PostReplyRsp);
+    // 获取评论列表
+    rpc GetPostCommentList (GetPostCommentListReq) returns (GetPostCommentListRsp);
+    // 获取回复列表
+    rpc GetReplyList (GetReplyListReq) returns (GetReplyListRsp);
+    // 评论点赞
+    rpc PostCommentUpvote (PostCommentUpvoteReq) returns (PostCommentUpvoteRsp);
+    // 评论点踩
+    rpc PostCommentThumbsDown (PostCommentThumbsDownReq) returns (PostCommentThumbsDownRsp);
 }

Разлика између датотеке није приказан због своје велике величине
+ 2280 - 0
slowwild/slowwildserver/slowwild.pb.go


+ 570 - 10
slowwild/slowwildserver/slowwild_grpc.pb.go

@@ -19,16 +19,30 @@ import (
 const _ = grpc.SupportPackageIsVersion8
 
 const (
-	SlowWildServer_Login_FullMethodName          = "/slowwildserver.SlowWildServer/Login"
-	SlowWildServer_Register_FullMethodName       = "/slowwildserver.SlowWildServer/Register"
-	SlowWildServer_GetUserInfo_FullMethodName    = "/slowwildserver.SlowWildServer/GetUserInfo"
-	SlowWildServer_FindUser_FullMethodName       = "/slowwildserver.SlowWildServer/FindUser"
-	SlowWildServer_UserFollow_FullMethodName     = "/slowwildserver.SlowWildServer/UserFollow"
-	SlowWildServer_UnUserFollow_FullMethodName   = "/slowwildserver.SlowWildServer/UnUserFollow"
-	SlowWildServer_GetFans_FullMethodName        = "/slowwildserver.SlowWildServer/GetFans"
-	SlowWildServer_GetFollows_FullMethodName     = "/slowwildserver.SlowWildServer/GetFollows"
-	SlowWildServer_GetUserProfile_FullMethodName = "/slowwildserver.SlowWildServer/GetUserProfile"
-	SlowWildServer_SearchUsername_FullMethodName = "/slowwildserver.SlowWildServer/SearchUsername"
+	SlowWildServer_Login_FullMethodName                 = "/slowwildserver.SlowWildServer/Login"
+	SlowWildServer_Register_FullMethodName              = "/slowwildserver.SlowWildServer/Register"
+	SlowWildServer_GetUserInfo_FullMethodName           = "/slowwildserver.SlowWildServer/GetUserInfo"
+	SlowWildServer_FindUser_FullMethodName              = "/slowwildserver.SlowWildServer/FindUser"
+	SlowWildServer_UserFollow_FullMethodName            = "/slowwildserver.SlowWildServer/UserFollow"
+	SlowWildServer_UnUserFollow_FullMethodName          = "/slowwildserver.SlowWildServer/UnUserFollow"
+	SlowWildServer_GetFans_FullMethodName               = "/slowwildserver.SlowWildServer/GetFans"
+	SlowWildServer_GetFollows_FullMethodName            = "/slowwildserver.SlowWildServer/GetFollows"
+	SlowWildServer_GetUserProfile_FullMethodName        = "/slowwildserver.SlowWildServer/GetUserProfile"
+	SlowWildServer_SearchUsername_FullMethodName        = "/slowwildserver.SlowWildServer/SearchUsername"
+	SlowWildServer_CreatePost_FullMethodName            = "/slowwildserver.SlowWildServer/CreatePost"
+	SlowWildServer_GetTagList_FullMethodName            = "/slowwildserver.SlowWildServer/GetTagList"
+	SlowWildServer_GetTag_FullMethodName                = "/slowwildserver.SlowWildServer/GetTag"
+	SlowWildServer_GetPostList_FullMethodName           = "/slowwildserver.SlowWildServer/GetPostList"
+	SlowWildServer_GetPost_FullMethodName               = "/slowwildserver.SlowWildServer/GetPost"
+	SlowWildServer_PostUpvote_FullMethodName            = "/slowwildserver.SlowWildServer/PostUpvote"
+	SlowWildServer_PostShare_FullMethodName             = "/slowwildserver.SlowWildServer/PostShare"
+	SlowWildServer_PostCollection_FullMethodName        = "/slowwildserver.SlowWildServer/PostCollection"
+	SlowWildServer_PostComment_FullMethodName           = "/slowwildserver.SlowWildServer/PostComment"
+	SlowWildServer_PostReply_FullMethodName             = "/slowwildserver.SlowWildServer/PostReply"
+	SlowWildServer_GetPostCommentList_FullMethodName    = "/slowwildserver.SlowWildServer/GetPostCommentList"
+	SlowWildServer_GetReplyList_FullMethodName          = "/slowwildserver.SlowWildServer/GetReplyList"
+	SlowWildServer_PostCommentUpvote_FullMethodName     = "/slowwildserver.SlowWildServer/PostCommentUpvote"
+	SlowWildServer_PostCommentThumbsDown_FullMethodName = "/slowwildserver.SlowWildServer/PostCommentThumbsDown"
 )
 
 // SlowWildServerClient is the client API for SlowWildServer service.
@@ -55,6 +69,34 @@ type SlowWildServerClient interface {
 	GetUserProfile(ctx context.Context, in *GetUserProfileReq, opts ...grpc.CallOption) (*GetUserProfileRes, error)
 	// 搜索用户名称
 	SearchUsername(ctx context.Context, in *SearchUsernameReq, opts ...grpc.CallOption) (*SearchUsernameRes, error)
+	// 发布帖子
+	CreatePost(ctx context.Context, in *CreatePostReq, opts ...grpc.CallOption) (*CreatePostRsp, error)
+	// 获取话题列表
+	GetTagList(ctx context.Context, in *GetTagListReq, opts ...grpc.CallOption) (*GetTagListRsp, error)
+	// 获取话题详情
+	GetTag(ctx context.Context, in *GetTagReq, opts ...grpc.CallOption) (*GetTagRsp, error)
+	// 获取帖子列表
+	GetPostList(ctx context.Context, in *GetPostListReq, opts ...grpc.CallOption) (*GetPostListRsp, error)
+	// 获取帖子详情
+	GetPost(ctx context.Context, in *GetPostReq, opts ...grpc.CallOption) (*GetPostRsp, error)
+	// 点赞帖子
+	PostUpvote(ctx context.Context, in *PostUpvoteReq, opts ...grpc.CallOption) (*PostUpvoteRsp, error)
+	// 分享帖子
+	PostShare(ctx context.Context, in *PostShareReq, opts ...grpc.CallOption) (*PostShareRsp, error)
+	// 收藏帖子
+	PostCollection(ctx context.Context, in *PostCollectionReq, opts ...grpc.CallOption) (*PostCollectionRsp, error)
+	// 发布评论
+	PostComment(ctx context.Context, in *PostCommentReq, opts ...grpc.CallOption) (*PostCommentRsp, error)
+	// 发布回复
+	PostReply(ctx context.Context, in *PostReplyReq, opts ...grpc.CallOption) (*PostReplyRsp, error)
+	// 获取评论列表
+	GetPostCommentList(ctx context.Context, in *GetPostCommentListReq, opts ...grpc.CallOption) (*GetPostCommentListRsp, error)
+	// 获取回复列表
+	GetReplyList(ctx context.Context, in *GetReplyListReq, opts ...grpc.CallOption) (*GetReplyListRsp, error)
+	// 评论点赞
+	PostCommentUpvote(ctx context.Context, in *PostCommentUpvoteReq, opts ...grpc.CallOption) (*PostCommentUpvoteRsp, error)
+	// 评论点踩
+	PostCommentThumbsDown(ctx context.Context, in *PostCommentThumbsDownReq, opts ...grpc.CallOption) (*PostCommentThumbsDownRsp, error)
 }
 
 type slowWildServerClient struct {
@@ -165,6 +207,146 @@ func (c *slowWildServerClient) SearchUsername(ctx context.Context, in *SearchUse
 	return out, nil
 }
 
+func (c *slowWildServerClient) CreatePost(ctx context.Context, in *CreatePostReq, opts ...grpc.CallOption) (*CreatePostRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(CreatePostRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_CreatePost_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) GetTagList(ctx context.Context, in *GetTagListReq, opts ...grpc.CallOption) (*GetTagListRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GetTagListRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_GetTagList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) GetTag(ctx context.Context, in *GetTagReq, opts ...grpc.CallOption) (*GetTagRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GetTagRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_GetTag_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) GetPostList(ctx context.Context, in *GetPostListReq, opts ...grpc.CallOption) (*GetPostListRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GetPostListRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_GetPostList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) GetPost(ctx context.Context, in *GetPostReq, opts ...grpc.CallOption) (*GetPostRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GetPostRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_GetPost_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) PostUpvote(ctx context.Context, in *PostUpvoteReq, opts ...grpc.CallOption) (*PostUpvoteRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PostUpvoteRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_PostUpvote_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) PostShare(ctx context.Context, in *PostShareReq, opts ...grpc.CallOption) (*PostShareRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PostShareRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_PostShare_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) PostCollection(ctx context.Context, in *PostCollectionReq, opts ...grpc.CallOption) (*PostCollectionRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PostCollectionRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_PostCollection_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) PostComment(ctx context.Context, in *PostCommentReq, opts ...grpc.CallOption) (*PostCommentRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PostCommentRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_PostComment_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) PostReply(ctx context.Context, in *PostReplyReq, opts ...grpc.CallOption) (*PostReplyRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PostReplyRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_PostReply_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) GetPostCommentList(ctx context.Context, in *GetPostCommentListReq, opts ...grpc.CallOption) (*GetPostCommentListRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GetPostCommentListRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_GetPostCommentList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) GetReplyList(ctx context.Context, in *GetReplyListReq, opts ...grpc.CallOption) (*GetReplyListRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(GetReplyListRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_GetReplyList_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) PostCommentUpvote(ctx context.Context, in *PostCommentUpvoteReq, opts ...grpc.CallOption) (*PostCommentUpvoteRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PostCommentUpvoteRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_PostCommentUpvote_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *slowWildServerClient) PostCommentThumbsDown(ctx context.Context, in *PostCommentThumbsDownReq, opts ...grpc.CallOption) (*PostCommentThumbsDownRsp, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	out := new(PostCommentThumbsDownRsp)
+	err := c.cc.Invoke(ctx, SlowWildServer_PostCommentThumbsDown_FullMethodName, in, out, cOpts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // SlowWildServerServer is the server API for SlowWildServer service.
 // All implementations must embed UnimplementedSlowWildServerServer
 // for forward compatibility
@@ -189,6 +371,34 @@ type SlowWildServerServer interface {
 	GetUserProfile(context.Context, *GetUserProfileReq) (*GetUserProfileRes, error)
 	// 搜索用户名称
 	SearchUsername(context.Context, *SearchUsernameReq) (*SearchUsernameRes, error)
+	// 发布帖子
+	CreatePost(context.Context, *CreatePostReq) (*CreatePostRsp, error)
+	// 获取话题列表
+	GetTagList(context.Context, *GetTagListReq) (*GetTagListRsp, error)
+	// 获取话题详情
+	GetTag(context.Context, *GetTagReq) (*GetTagRsp, error)
+	// 获取帖子列表
+	GetPostList(context.Context, *GetPostListReq) (*GetPostListRsp, error)
+	// 获取帖子详情
+	GetPost(context.Context, *GetPostReq) (*GetPostRsp, error)
+	// 点赞帖子
+	PostUpvote(context.Context, *PostUpvoteReq) (*PostUpvoteRsp, error)
+	// 分享帖子
+	PostShare(context.Context, *PostShareReq) (*PostShareRsp, error)
+	// 收藏帖子
+	PostCollection(context.Context, *PostCollectionReq) (*PostCollectionRsp, error)
+	// 发布评论
+	PostComment(context.Context, *PostCommentReq) (*PostCommentRsp, error)
+	// 发布回复
+	PostReply(context.Context, *PostReplyReq) (*PostReplyRsp, error)
+	// 获取评论列表
+	GetPostCommentList(context.Context, *GetPostCommentListReq) (*GetPostCommentListRsp, error)
+	// 获取回复列表
+	GetReplyList(context.Context, *GetReplyListReq) (*GetReplyListRsp, error)
+	// 评论点赞
+	PostCommentUpvote(context.Context, *PostCommentUpvoteReq) (*PostCommentUpvoteRsp, error)
+	// 评论点踩
+	PostCommentThumbsDown(context.Context, *PostCommentThumbsDownReq) (*PostCommentThumbsDownRsp, error)
 	mustEmbedUnimplementedSlowWildServerServer()
 }
 
@@ -226,6 +436,48 @@ func (UnimplementedSlowWildServerServer) GetUserProfile(context.Context, *GetUse
 func (UnimplementedSlowWildServerServer) SearchUsername(context.Context, *SearchUsernameReq) (*SearchUsernameRes, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SearchUsername not implemented")
 }
+func (UnimplementedSlowWildServerServer) CreatePost(context.Context, *CreatePostReq) (*CreatePostRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method CreatePost not implemented")
+}
+func (UnimplementedSlowWildServerServer) GetTagList(context.Context, *GetTagListReq) (*GetTagListRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetTagList not implemented")
+}
+func (UnimplementedSlowWildServerServer) GetTag(context.Context, *GetTagReq) (*GetTagRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetTag not implemented")
+}
+func (UnimplementedSlowWildServerServer) GetPostList(context.Context, *GetPostListReq) (*GetPostListRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetPostList not implemented")
+}
+func (UnimplementedSlowWildServerServer) GetPost(context.Context, *GetPostReq) (*GetPostRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetPost not implemented")
+}
+func (UnimplementedSlowWildServerServer) PostUpvote(context.Context, *PostUpvoteReq) (*PostUpvoteRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PostUpvote not implemented")
+}
+func (UnimplementedSlowWildServerServer) PostShare(context.Context, *PostShareReq) (*PostShareRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PostShare not implemented")
+}
+func (UnimplementedSlowWildServerServer) PostCollection(context.Context, *PostCollectionReq) (*PostCollectionRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PostCollection not implemented")
+}
+func (UnimplementedSlowWildServerServer) PostComment(context.Context, *PostCommentReq) (*PostCommentRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PostComment not implemented")
+}
+func (UnimplementedSlowWildServerServer) PostReply(context.Context, *PostReplyReq) (*PostReplyRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PostReply not implemented")
+}
+func (UnimplementedSlowWildServerServer) GetPostCommentList(context.Context, *GetPostCommentListReq) (*GetPostCommentListRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetPostCommentList not implemented")
+}
+func (UnimplementedSlowWildServerServer) GetReplyList(context.Context, *GetReplyListReq) (*GetReplyListRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method GetReplyList not implemented")
+}
+func (UnimplementedSlowWildServerServer) PostCommentUpvote(context.Context, *PostCommentUpvoteReq) (*PostCommentUpvoteRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PostCommentUpvote not implemented")
+}
+func (UnimplementedSlowWildServerServer) PostCommentThumbsDown(context.Context, *PostCommentThumbsDownReq) (*PostCommentThumbsDownRsp, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method PostCommentThumbsDown not implemented")
+}
 func (UnimplementedSlowWildServerServer) mustEmbedUnimplementedSlowWildServerServer() {}
 
 // UnsafeSlowWildServerServer may be embedded to opt out of forward compatibility for this service.
@@ -419,6 +671,258 @@ func _SlowWildServer_SearchUsername_Handler(srv interface{}, ctx context.Context
 	return interceptor(ctx, in, info, handler)
 }
 
+func _SlowWildServer_CreatePost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CreatePostReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).CreatePost(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_CreatePost_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).CreatePost(ctx, req.(*CreatePostReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_GetTagList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetTagListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).GetTagList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_GetTagList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).GetTagList(ctx, req.(*GetTagListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_GetTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetTagReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).GetTag(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_GetTag_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).GetTag(ctx, req.(*GetTagReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_GetPostList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetPostListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).GetPostList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_GetPostList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).GetPostList(ctx, req.(*GetPostListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_GetPost_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetPostReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).GetPost(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_GetPost_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).GetPost(ctx, req.(*GetPostReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_PostUpvote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PostUpvoteReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).PostUpvote(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_PostUpvote_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).PostUpvote(ctx, req.(*PostUpvoteReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_PostShare_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PostShareReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).PostShare(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_PostShare_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).PostShare(ctx, req.(*PostShareReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_PostCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PostCollectionReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).PostCollection(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_PostCollection_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).PostCollection(ctx, req.(*PostCollectionReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_PostComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PostCommentReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).PostComment(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_PostComment_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).PostComment(ctx, req.(*PostCommentReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_PostReply_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PostReplyReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).PostReply(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_PostReply_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).PostReply(ctx, req.(*PostReplyReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_GetPostCommentList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetPostCommentListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).GetPostCommentList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_GetPostCommentList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).GetPostCommentList(ctx, req.(*GetPostCommentListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_GetReplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetReplyListReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).GetReplyList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_GetReplyList_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).GetReplyList(ctx, req.(*GetReplyListReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_PostCommentUpvote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PostCommentUpvoteReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).PostCommentUpvote(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_PostCommentUpvote_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).PostCommentUpvote(ctx, req.(*PostCommentUpvoteReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _SlowWildServer_PostCommentThumbsDown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PostCommentThumbsDownReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(SlowWildServerServer).PostCommentThumbsDown(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: SlowWildServer_PostCommentThumbsDown_FullMethodName,
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(SlowWildServerServer).PostCommentThumbsDown(ctx, req.(*PostCommentThumbsDownReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 // SlowWildServer_ServiceDesc is the grpc.ServiceDesc for SlowWildServer service.
 // It's only intended for direct use with grpc.RegisterService,
 // and not to be introspected or modified (even as a copy)
@@ -466,6 +970,62 @@ var SlowWildServer_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "SearchUsername",
 			Handler:    _SlowWildServer_SearchUsername_Handler,
 		},
+		{
+			MethodName: "CreatePost",
+			Handler:    _SlowWildServer_CreatePost_Handler,
+		},
+		{
+			MethodName: "GetTagList",
+			Handler:    _SlowWildServer_GetTagList_Handler,
+		},
+		{
+			MethodName: "GetTag",
+			Handler:    _SlowWildServer_GetTag_Handler,
+		},
+		{
+			MethodName: "GetPostList",
+			Handler:    _SlowWildServer_GetPostList_Handler,
+		},
+		{
+			MethodName: "GetPost",
+			Handler:    _SlowWildServer_GetPost_Handler,
+		},
+		{
+			MethodName: "PostUpvote",
+			Handler:    _SlowWildServer_PostUpvote_Handler,
+		},
+		{
+			MethodName: "PostShare",
+			Handler:    _SlowWildServer_PostShare_Handler,
+		},
+		{
+			MethodName: "PostCollection",
+			Handler:    _SlowWildServer_PostCollection_Handler,
+		},
+		{
+			MethodName: "PostComment",
+			Handler:    _SlowWildServer_PostComment_Handler,
+		},
+		{
+			MethodName: "PostReply",
+			Handler:    _SlowWildServer_PostReply_Handler,
+		},
+		{
+			MethodName: "GetPostCommentList",
+			Handler:    _SlowWildServer_GetPostCommentList_Handler,
+		},
+		{
+			MethodName: "GetReplyList",
+			Handler:    _SlowWildServer_GetReplyList_Handler,
+		},
+		{
+			MethodName: "PostCommentUpvote",
+			Handler:    _SlowWildServer_PostCommentUpvote_Handler,
+		},
+		{
+			MethodName: "PostCommentThumbsDown",
+			Handler:    _SlowWildServer_PostCommentThumbsDown_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "proto/slowwild.proto",

Неке датотеке нису приказане због велике количине промена