slash-e/proto/api/v2/user_setting_service.proto

70 lines
1.5 KiB
Protocol Buffer

syntax = "proto3";
package slash.api.v2;
import "google/api/annotations.proto";
import "google/api/client.proto";
option go_package = "gen/api/v2";
service UserSettingService {
// GetUserSetting returns the user setting.
rpc GetUserSetting(GetUserSettingRequest) returns (GetUserSettingResponse) {
option (google.api.http) = {get: "/api/v2/users/{id}/settings"};
option (google.api.method_signature) = "id";
}
// UpdateUserSetting updates the user setting.
rpc UpdateUserSetting(UpdateUserSettingRequest) returns (UpdateUserSettingResponse) {
option (google.api.http) = {
post: "/api/v2/users/{id}/settings"
body: "*"
};
option (google.api.method_signature) = "id";
}
}
message UserSetting {
// id is the user id.
int32 id = 1;
enum Locale {
LOCALE_UNSPECIFIED = 0;
LOCALE_EN = 1;
LOCALE_ZH = 2;
}
// locale is the user locale.
Locale locale = 2;
enum ColorTheme {
COLOR_THEME_UNSPECIFIED = 0;
COLOR_THEME_LIGHT = 1;
COLOR_THEME_DARK = 2;
}
// color_theme is the user color theme.
ColorTheme color_theme = 3;
}
message GetUserSettingRequest {
// id is the user id.
int32 id = 1;
}
message GetUserSettingResponse {
UserSetting user_setting = 1;
}
message UpdateUserSettingRequest {
// id is the user id.
int32 id = 1;
// user_setting is the user setting to update.
UserSetting user_setting = 2;
// update_mask is the field mask to update.
repeated string update_mask = 3;
}
message UpdateUserSettingResponse {
UserSetting user_setting = 1;
}