mdcpp/mdoj

Grpc API change request (missing field/werid info)

KAIYOHUGO opened this issue · 7 comments

Announcement List API provide sort by CREATE_DATE and PUBLIC

SORT_CREATE_DATE = 1;
SORT_PUBLIC = 2;

But the response didn't provide such info (CREATE_DATE and PUBLIC)

message AnnouncementInfo {
required int32 id = 1;
required string title = 2;
required google.protobuf.Timestamp update_date = 3;
}

So I think we should add such info into AnnouncementInfo or remove it from sort.

Adding such info would be appropriate.

Can you also provide a list of similar issue(missing fields), so I could correct it in one pull request.

List User API have a similar issue

service User {
rpc List(ListUserRequest) returns (ListUserResponse);

It provide SORT_CREATE_DATE

enum Sort {
SORT_CREATE_DATE = 0;
SORT_SCORE = 1;
}

But response do not provide

message UserInfo {
required string username = 1;
required uint64 score = 4;
required int32 id = 3;
}

List Contest API have a similar issue

service Contest {
rpc List(ListContestRequest) returns (ListContestResponse);

It provide SORT_CREATE_DATE/SORT_UPDATE_DATE/SORT_PUBLIC

enum Sort {
SORT_CREATE_DATE = 0;
SORT_UPDATE_DATE = 1;
SORT_BEGIN = 2;
SORT_END = 3;
SORT_PUBLIC = 4;
}

But response do not provide, we should add such field or remove it from sort.

message ContestInfo {
required int32 id = 1;
required string title = 2;
optional google.protobuf.Timestamp begin = 4;
optional google.protobuf.Timestamp end = 5;
required bool need_password = 6;
}

The following message types has not be use. Consider remove them or provide such API

message UserRank {
required int32 user_id = 1;
required uint32 score = 2;
}

message ListRankResponse {
repeated UserRank list = 1;
required string paginator = 2;
required uint64 remain = 3;
}

// message Users { repeated UserRank list = 1; }

List Problem API have a similar issue

service Problem {
rpc List(ListProblemRequest) returns (ListProblemResponse);

It provide SORT_CREATE_DATE/SORT_UPDATE_DATE/SORT_PUBLIC

enum Sort {
SORT_UPDATE_DATE = 0;
SORT_CREATE_DATE = 1;
SORT_AC_RATE = 2;
SORT_SUBMIT_COUNT = 3;
SORT_DIFFICULTY = 4;
SORT_ORDER = 5;
SORT_PUBLIC = 6;
}

But response do not provide, we should add such field or remove it from sort.

message ProblemInfo {
required int32 id = 1;
required string title = 2;
required uint32 submit_count = 3;
// 0 - 500 easy
// 500 - 1000 easy+
// 1000 - 1500 medium
// 1500 - 2000 medium+
// 2000 - 2500 hard
// 2500 - 3000 hard+
// 3000 - inf geek
required uint32 difficulty = 5;
required float ac_rate = 4;
}

Okay, I would work on it tomorrow.(If lab meeting goes well)