mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
app crud & test
This commit is contained in:
parent
7cf563614b
commit
f520769283
app_flowy/packages/flowy_sdk/lib/protobuf/flowy-workspace
app_create.pb.dartapp_create.pbjson.dartapp_delete.pb.dartapp_delete.pbjson.dartapp_query.pb.dartapp_query.pbjson.dartapp_update.pb.dartapp_update.pbjson.darterrors.pbenum.darterrors.pbjson.dartworkspace_create.pb.dartworkspace_create.pbjson.dart
backend
rust-lib
flowy-derive/src/derive_cache
flowy-net/src
flowy-user/src
flowy-workspace/src
@ -150,6 +150,111 @@ class ColorStyle extends $pb.GeneratedMessage {
|
||||
void clearThemeColor() => clearField(1);
|
||||
}
|
||||
|
||||
class CreateAppParams extends $pb.GeneratedMessage {
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'CreateAppParams', createEmptyInstance: create)
|
||||
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'workspaceId')
|
||||
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name')
|
||||
..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'desc')
|
||||
..aOM<ColorStyle>(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'colorStyle', subBuilder: ColorStyle.create)
|
||||
..aOS(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'userId')
|
||||
..hasRequiredFields = false
|
||||
;
|
||||
|
||||
CreateAppParams._() : super();
|
||||
factory CreateAppParams({
|
||||
$core.String? workspaceId,
|
||||
$core.String? name,
|
||||
$core.String? desc,
|
||||
ColorStyle? colorStyle,
|
||||
$core.String? userId,
|
||||
}) {
|
||||
final _result = create();
|
||||
if (workspaceId != null) {
|
||||
_result.workspaceId = workspaceId;
|
||||
}
|
||||
if (name != null) {
|
||||
_result.name = name;
|
||||
}
|
||||
if (desc != null) {
|
||||
_result.desc = desc;
|
||||
}
|
||||
if (colorStyle != null) {
|
||||
_result.colorStyle = colorStyle;
|
||||
}
|
||||
if (userId != null) {
|
||||
_result.userId = userId;
|
||||
}
|
||||
return _result;
|
||||
}
|
||||
factory CreateAppParams.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||
factory CreateAppParams.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||
'Will be removed in next major version')
|
||||
CreateAppParams clone() => CreateAppParams()..mergeFromMessage(this);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||
'Will be removed in next major version')
|
||||
CreateAppParams copyWith(void Function(CreateAppParams) updates) => super.copyWith((message) => updates(message as CreateAppParams)) as CreateAppParams; // ignore: deprecated_member_use
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static CreateAppParams create() => CreateAppParams._();
|
||||
CreateAppParams createEmptyInstance() => create();
|
||||
static $pb.PbList<CreateAppParams> createRepeated() => $pb.PbList<CreateAppParams>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static CreateAppParams getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<CreateAppParams>(create);
|
||||
static CreateAppParams? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get workspaceId => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set workspaceId($core.String v) { $_setString(0, v); }
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasWorkspaceId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearWorkspaceId() => clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.String get name => $_getSZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set name($core.String v) { $_setString(1, v); }
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasName() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearName() => clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.String get desc => $_getSZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set desc($core.String v) { $_setString(2, v); }
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasDesc() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearDesc() => clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
ColorStyle get colorStyle => $_getN(3);
|
||||
@$pb.TagNumber(4)
|
||||
set colorStyle(ColorStyle v) { setField(4, v); }
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasColorStyle() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearColorStyle() => clearField(4);
|
||||
@$pb.TagNumber(4)
|
||||
ColorStyle ensureColorStyle() => $_ensure(3);
|
||||
|
||||
@$pb.TagNumber(5)
|
||||
$core.String get userId => $_getSZ(4);
|
||||
@$pb.TagNumber(5)
|
||||
set userId($core.String v) { $_setString(4, v); }
|
||||
@$pb.TagNumber(5)
|
||||
$core.bool hasUserId() => $_has(4);
|
||||
@$pb.TagNumber(5)
|
||||
void clearUserId() => clearField(5);
|
||||
}
|
||||
|
||||
class App extends $pb.GeneratedMessage {
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'App', createEmptyInstance: create)
|
||||
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'id')
|
||||
|
@ -31,6 +31,20 @@ const ColorStyle$json = const {
|
||||
|
||||
/// Descriptor for `ColorStyle`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List colorStyleDescriptor = $convert.base64Decode('CgpDb2xvclN0eWxlEh8KC3RoZW1lX2NvbG9yGAEgASgJUgp0aGVtZUNvbG9y');
|
||||
@$core.Deprecated('Use createAppParamsDescriptor instead')
|
||||
const CreateAppParams$json = const {
|
||||
'1': 'CreateAppParams',
|
||||
'2': const [
|
||||
const {'1': 'workspace_id', '3': 1, '4': 1, '5': 9, '10': 'workspaceId'},
|
||||
const {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'},
|
||||
const {'1': 'desc', '3': 3, '4': 1, '5': 9, '10': 'desc'},
|
||||
const {'1': 'color_style', '3': 4, '4': 1, '5': 11, '6': '.ColorStyle', '10': 'colorStyle'},
|
||||
const {'1': 'user_id', '3': 5, '4': 1, '5': 9, '10': 'userId'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `CreateAppParams`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List createAppParamsDescriptor = $convert.base64Decode('Cg9DcmVhdGVBcHBQYXJhbXMSIQoMd29ya3NwYWNlX2lkGAEgASgJUgt3b3Jrc3BhY2VJZBISCgRuYW1lGAIgASgJUgRuYW1lEhIKBGRlc2MYAyABKAlSBGRlc2MSLAoLY29sb3Jfc3R5bGUYBCABKAsyCy5Db2xvclN0eWxlUgpjb2xvclN0eWxlEhcKB3VzZXJfaWQYBSABKAlSBnVzZXJJZA==');
|
||||
@$core.Deprecated('Use appDescriptor instead')
|
||||
const App$json = const {
|
||||
'1': 'App',
|
||||
|
@ -56,3 +56,50 @@ class DeleteAppRequest extends $pb.GeneratedMessage {
|
||||
void clearAppId() => clearField(1);
|
||||
}
|
||||
|
||||
class DeleteAppParams extends $pb.GeneratedMessage {
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'DeleteAppParams', createEmptyInstance: create)
|
||||
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'appId')
|
||||
..hasRequiredFields = false
|
||||
;
|
||||
|
||||
DeleteAppParams._() : super();
|
||||
factory DeleteAppParams({
|
||||
$core.String? appId,
|
||||
}) {
|
||||
final _result = create();
|
||||
if (appId != null) {
|
||||
_result.appId = appId;
|
||||
}
|
||||
return _result;
|
||||
}
|
||||
factory DeleteAppParams.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||
factory DeleteAppParams.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||
'Will be removed in next major version')
|
||||
DeleteAppParams clone() => DeleteAppParams()..mergeFromMessage(this);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||
'Will be removed in next major version')
|
||||
DeleteAppParams copyWith(void Function(DeleteAppParams) updates) => super.copyWith((message) => updates(message as DeleteAppParams)) as DeleteAppParams; // ignore: deprecated_member_use
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static DeleteAppParams create() => DeleteAppParams._();
|
||||
DeleteAppParams createEmptyInstance() => create();
|
||||
static $pb.PbList<DeleteAppParams> createRepeated() => $pb.PbList<DeleteAppParams>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static DeleteAppParams getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<DeleteAppParams>(create);
|
||||
static DeleteAppParams? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get appId => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set appId($core.String v) { $_setString(0, v); }
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasAppId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearAppId() => clearField(1);
|
||||
}
|
||||
|
||||
|
@ -18,3 +18,13 @@ const DeleteAppRequest$json = const {
|
||||
|
||||
/// Descriptor for `DeleteAppRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List deleteAppRequestDescriptor = $convert.base64Decode('ChBEZWxldGVBcHBSZXF1ZXN0EhUKBmFwcF9pZBgBIAEoCVIFYXBwSWQ=');
|
||||
@$core.Deprecated('Use deleteAppParamsDescriptor instead')
|
||||
const DeleteAppParams$json = const {
|
||||
'1': 'DeleteAppParams',
|
||||
'2': const [
|
||||
const {'1': 'app_id', '3': 1, '4': 1, '5': 9, '10': 'appId'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `DeleteAppParams`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List deleteAppParamsDescriptor = $convert.base64Decode('Cg9EZWxldGVBcHBQYXJhbXMSFQoGYXBwX2lkGAEgASgJUgVhcHBJZA==');
|
||||
|
@ -84,3 +84,78 @@ class QueryAppRequest extends $pb.GeneratedMessage {
|
||||
void clearIsTrash() => clearField(3);
|
||||
}
|
||||
|
||||
class QueryAppParams extends $pb.GeneratedMessage {
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'QueryAppParams', createEmptyInstance: create)
|
||||
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'appId')
|
||||
..aOB(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'readBelongings')
|
||||
..aOB(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'isTrash')
|
||||
..hasRequiredFields = false
|
||||
;
|
||||
|
||||
QueryAppParams._() : super();
|
||||
factory QueryAppParams({
|
||||
$core.String? appId,
|
||||
$core.bool? readBelongings,
|
||||
$core.bool? isTrash,
|
||||
}) {
|
||||
final _result = create();
|
||||
if (appId != null) {
|
||||
_result.appId = appId;
|
||||
}
|
||||
if (readBelongings != null) {
|
||||
_result.readBelongings = readBelongings;
|
||||
}
|
||||
if (isTrash != null) {
|
||||
_result.isTrash = isTrash;
|
||||
}
|
||||
return _result;
|
||||
}
|
||||
factory QueryAppParams.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||
factory QueryAppParams.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||
'Will be removed in next major version')
|
||||
QueryAppParams clone() => QueryAppParams()..mergeFromMessage(this);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||
'Will be removed in next major version')
|
||||
QueryAppParams copyWith(void Function(QueryAppParams) updates) => super.copyWith((message) => updates(message as QueryAppParams)) as QueryAppParams; // ignore: deprecated_member_use
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static QueryAppParams create() => QueryAppParams._();
|
||||
QueryAppParams createEmptyInstance() => create();
|
||||
static $pb.PbList<QueryAppParams> createRepeated() => $pb.PbList<QueryAppParams>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static QueryAppParams getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<QueryAppParams>(create);
|
||||
static QueryAppParams? _defaultInstance;
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get appId => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set appId($core.String v) { $_setString(0, v); }
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasAppId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearAppId() => clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool get readBelongings => $_getBF(1);
|
||||
@$pb.TagNumber(2)
|
||||
set readBelongings($core.bool v) { $_setBool(1, v); }
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasReadBelongings() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearReadBelongings() => clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool get isTrash => $_getBF(2);
|
||||
@$pb.TagNumber(3)
|
||||
set isTrash($core.bool v) { $_setBool(2, v); }
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasIsTrash() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearIsTrash() => clearField(3);
|
||||
}
|
||||
|
||||
|
@ -20,3 +20,15 @@ const QueryAppRequest$json = const {
|
||||
|
||||
/// Descriptor for `QueryAppRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List queryAppRequestDescriptor = $convert.base64Decode('Cg9RdWVyeUFwcFJlcXVlc3QSFQoGYXBwX2lkGAEgASgJUgVhcHBJZBInCg9yZWFkX2JlbG9uZ2luZ3MYAiABKAhSDnJlYWRCZWxvbmdpbmdzEhkKCGlzX3RyYXNoGAMgASgIUgdpc1RyYXNo');
|
||||
@$core.Deprecated('Use queryAppParamsDescriptor instead')
|
||||
const QueryAppParams$json = const {
|
||||
'1': 'QueryAppParams',
|
||||
'2': const [
|
||||
const {'1': 'app_id', '3': 1, '4': 1, '5': 9, '10': 'appId'},
|
||||
const {'1': 'read_belongings', '3': 2, '4': 1, '5': 8, '10': 'readBelongings'},
|
||||
const {'1': 'is_trash', '3': 3, '4': 1, '5': 8, '10': 'isTrash'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `QueryAppParams`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List queryAppParamsDescriptor = $convert.base64Decode('Cg5RdWVyeUFwcFBhcmFtcxIVCgZhcHBfaWQYASABKAlSBWFwcElkEicKD3JlYWRfYmVsb25naW5ncxgCIAEoCFIOcmVhZEJlbG9uZ2luZ3MSGQoIaXNfdHJhc2gYAyABKAhSB2lzVHJhc2g=');
|
||||
|
@ -195,3 +195,187 @@ class UpdateAppRequest extends $pb.GeneratedMessage {
|
||||
void clearIsTrash() => clearField(6);
|
||||
}
|
||||
|
||||
enum UpdateAppParams_OneOfWorkspaceId {
|
||||
workspaceId,
|
||||
notSet
|
||||
}
|
||||
|
||||
enum UpdateAppParams_OneOfName {
|
||||
name,
|
||||
notSet
|
||||
}
|
||||
|
||||
enum UpdateAppParams_OneOfDesc {
|
||||
desc,
|
||||
notSet
|
||||
}
|
||||
|
||||
enum UpdateAppParams_OneOfColorStyle {
|
||||
colorStyle,
|
||||
notSet
|
||||
}
|
||||
|
||||
enum UpdateAppParams_OneOfIsTrash {
|
||||
isTrash,
|
||||
notSet
|
||||
}
|
||||
|
||||
class UpdateAppParams extends $pb.GeneratedMessage {
|
||||
static const $core.Map<$core.int, UpdateAppParams_OneOfWorkspaceId> _UpdateAppParams_OneOfWorkspaceIdByTag = {
|
||||
2 : UpdateAppParams_OneOfWorkspaceId.workspaceId,
|
||||
0 : UpdateAppParams_OneOfWorkspaceId.notSet
|
||||
};
|
||||
static const $core.Map<$core.int, UpdateAppParams_OneOfName> _UpdateAppParams_OneOfNameByTag = {
|
||||
3 : UpdateAppParams_OneOfName.name,
|
||||
0 : UpdateAppParams_OneOfName.notSet
|
||||
};
|
||||
static const $core.Map<$core.int, UpdateAppParams_OneOfDesc> _UpdateAppParams_OneOfDescByTag = {
|
||||
4 : UpdateAppParams_OneOfDesc.desc,
|
||||
0 : UpdateAppParams_OneOfDesc.notSet
|
||||
};
|
||||
static const $core.Map<$core.int, UpdateAppParams_OneOfColorStyle> _UpdateAppParams_OneOfColorStyleByTag = {
|
||||
5 : UpdateAppParams_OneOfColorStyle.colorStyle,
|
||||
0 : UpdateAppParams_OneOfColorStyle.notSet
|
||||
};
|
||||
static const $core.Map<$core.int, UpdateAppParams_OneOfIsTrash> _UpdateAppParams_OneOfIsTrashByTag = {
|
||||
6 : UpdateAppParams_OneOfIsTrash.isTrash,
|
||||
0 : UpdateAppParams_OneOfIsTrash.notSet
|
||||
};
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'UpdateAppParams', createEmptyInstance: create)
|
||||
..oo(0, [2])
|
||||
..oo(1, [3])
|
||||
..oo(2, [4])
|
||||
..oo(3, [5])
|
||||
..oo(4, [6])
|
||||
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'appId')
|
||||
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'workspaceId')
|
||||
..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name')
|
||||
..aOS(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'desc')
|
||||
..aOM<$0.ColorStyle>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'colorStyle', subBuilder: $0.ColorStyle.create)
|
||||
..aOB(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'isTrash')
|
||||
..hasRequiredFields = false
|
||||
;
|
||||
|
||||
UpdateAppParams._() : super();
|
||||
factory UpdateAppParams({
|
||||
$core.String? appId,
|
||||
$core.String? workspaceId,
|
||||
$core.String? name,
|
||||
$core.String? desc,
|
||||
$0.ColorStyle? colorStyle,
|
||||
$core.bool? isTrash,
|
||||
}) {
|
||||
final _result = create();
|
||||
if (appId != null) {
|
||||
_result.appId = appId;
|
||||
}
|
||||
if (workspaceId != null) {
|
||||
_result.workspaceId = workspaceId;
|
||||
}
|
||||
if (name != null) {
|
||||
_result.name = name;
|
||||
}
|
||||
if (desc != null) {
|
||||
_result.desc = desc;
|
||||
}
|
||||
if (colorStyle != null) {
|
||||
_result.colorStyle = colorStyle;
|
||||
}
|
||||
if (isTrash != null) {
|
||||
_result.isTrash = isTrash;
|
||||
}
|
||||
return _result;
|
||||
}
|
||||
factory UpdateAppParams.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r);
|
||||
factory UpdateAppParams.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
|
||||
'Will be removed in next major version')
|
||||
UpdateAppParams clone() => UpdateAppParams()..mergeFromMessage(this);
|
||||
@$core.Deprecated(
|
||||
'Using this can add significant overhead to your binary. '
|
||||
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
|
||||
'Will be removed in next major version')
|
||||
UpdateAppParams copyWith(void Function(UpdateAppParams) updates) => super.copyWith((message) => updates(message as UpdateAppParams)) as UpdateAppParams; // ignore: deprecated_member_use
|
||||
$pb.BuilderInfo get info_ => _i;
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateAppParams create() => UpdateAppParams._();
|
||||
UpdateAppParams createEmptyInstance() => create();
|
||||
static $pb.PbList<UpdateAppParams> createRepeated() => $pb.PbList<UpdateAppParams>();
|
||||
@$core.pragma('dart2js:noInline')
|
||||
static UpdateAppParams getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<UpdateAppParams>(create);
|
||||
static UpdateAppParams? _defaultInstance;
|
||||
|
||||
UpdateAppParams_OneOfWorkspaceId whichOneOfWorkspaceId() => _UpdateAppParams_OneOfWorkspaceIdByTag[$_whichOneof(0)]!;
|
||||
void clearOneOfWorkspaceId() => clearField($_whichOneof(0));
|
||||
|
||||
UpdateAppParams_OneOfName whichOneOfName() => _UpdateAppParams_OneOfNameByTag[$_whichOneof(1)]!;
|
||||
void clearOneOfName() => clearField($_whichOneof(1));
|
||||
|
||||
UpdateAppParams_OneOfDesc whichOneOfDesc() => _UpdateAppParams_OneOfDescByTag[$_whichOneof(2)]!;
|
||||
void clearOneOfDesc() => clearField($_whichOneof(2));
|
||||
|
||||
UpdateAppParams_OneOfColorStyle whichOneOfColorStyle() => _UpdateAppParams_OneOfColorStyleByTag[$_whichOneof(3)]!;
|
||||
void clearOneOfColorStyle() => clearField($_whichOneof(3));
|
||||
|
||||
UpdateAppParams_OneOfIsTrash whichOneOfIsTrash() => _UpdateAppParams_OneOfIsTrashByTag[$_whichOneof(4)]!;
|
||||
void clearOneOfIsTrash() => clearField($_whichOneof(4));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get appId => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
set appId($core.String v) { $_setString(0, v); }
|
||||
@$pb.TagNumber(1)
|
||||
$core.bool hasAppId() => $_has(0);
|
||||
@$pb.TagNumber(1)
|
||||
void clearAppId() => clearField(1);
|
||||
|
||||
@$pb.TagNumber(2)
|
||||
$core.String get workspaceId => $_getSZ(1);
|
||||
@$pb.TagNumber(2)
|
||||
set workspaceId($core.String v) { $_setString(1, v); }
|
||||
@$pb.TagNumber(2)
|
||||
$core.bool hasWorkspaceId() => $_has(1);
|
||||
@$pb.TagNumber(2)
|
||||
void clearWorkspaceId() => clearField(2);
|
||||
|
||||
@$pb.TagNumber(3)
|
||||
$core.String get name => $_getSZ(2);
|
||||
@$pb.TagNumber(3)
|
||||
set name($core.String v) { $_setString(2, v); }
|
||||
@$pb.TagNumber(3)
|
||||
$core.bool hasName() => $_has(2);
|
||||
@$pb.TagNumber(3)
|
||||
void clearName() => clearField(3);
|
||||
|
||||
@$pb.TagNumber(4)
|
||||
$core.String get desc => $_getSZ(3);
|
||||
@$pb.TagNumber(4)
|
||||
set desc($core.String v) { $_setString(3, v); }
|
||||
@$pb.TagNumber(4)
|
||||
$core.bool hasDesc() => $_has(3);
|
||||
@$pb.TagNumber(4)
|
||||
void clearDesc() => clearField(4);
|
||||
|
||||
@$pb.TagNumber(5)
|
||||
$0.ColorStyle get colorStyle => $_getN(4);
|
||||
@$pb.TagNumber(5)
|
||||
set colorStyle($0.ColorStyle v) { setField(5, v); }
|
||||
@$pb.TagNumber(5)
|
||||
$core.bool hasColorStyle() => $_has(4);
|
||||
@$pb.TagNumber(5)
|
||||
void clearColorStyle() => clearField(5);
|
||||
@$pb.TagNumber(5)
|
||||
$0.ColorStyle ensureColorStyle() => $_ensure(4);
|
||||
|
||||
@$pb.TagNumber(6)
|
||||
$core.bool get isTrash => $_getBF(5);
|
||||
@$pb.TagNumber(6)
|
||||
set isTrash($core.bool v) { $_setBool(5, v); }
|
||||
@$pb.TagNumber(6)
|
||||
$core.bool hasIsTrash() => $_has(5);
|
||||
@$pb.TagNumber(6)
|
||||
void clearIsTrash() => clearField(6);
|
||||
}
|
||||
|
||||
|
@ -30,3 +30,25 @@ const UpdateAppRequest$json = const {
|
||||
|
||||
/// Descriptor for `UpdateAppRequest`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List updateAppRequestDescriptor = $convert.base64Decode('ChBVcGRhdGVBcHBSZXF1ZXN0EhUKBmFwcF9pZBgBIAEoCVIFYXBwSWQSIwoMd29ya3NwYWNlX2lkGAIgASgJSABSC3dvcmtzcGFjZUlkEhQKBG5hbWUYAyABKAlIAVIEbmFtZRIUCgRkZXNjGAQgASgJSAJSBGRlc2MSLgoLY29sb3Jfc3R5bGUYBSABKAsyCy5Db2xvclN0eWxlSANSCmNvbG9yU3R5bGUSGwoIaXNfdHJhc2gYBiABKAhIBFIHaXNUcmFzaEIVChNvbmVfb2Zfd29ya3NwYWNlX2lkQg0KC29uZV9vZl9uYW1lQg0KC29uZV9vZl9kZXNjQhQKEm9uZV9vZl9jb2xvcl9zdHlsZUIRCg9vbmVfb2ZfaXNfdHJhc2g=');
|
||||
@$core.Deprecated('Use updateAppParamsDescriptor instead')
|
||||
const UpdateAppParams$json = const {
|
||||
'1': 'UpdateAppParams',
|
||||
'2': const [
|
||||
const {'1': 'app_id', '3': 1, '4': 1, '5': 9, '10': 'appId'},
|
||||
const {'1': 'workspace_id', '3': 2, '4': 1, '5': 9, '9': 0, '10': 'workspaceId'},
|
||||
const {'1': 'name', '3': 3, '4': 1, '5': 9, '9': 1, '10': 'name'},
|
||||
const {'1': 'desc', '3': 4, '4': 1, '5': 9, '9': 2, '10': 'desc'},
|
||||
const {'1': 'color_style', '3': 5, '4': 1, '5': 11, '6': '.ColorStyle', '9': 3, '10': 'colorStyle'},
|
||||
const {'1': 'is_trash', '3': 6, '4': 1, '5': 8, '9': 4, '10': 'isTrash'},
|
||||
],
|
||||
'8': const [
|
||||
const {'1': 'one_of_workspace_id'},
|
||||
const {'1': 'one_of_name'},
|
||||
const {'1': 'one_of_desc'},
|
||||
const {'1': 'one_of_color_style'},
|
||||
const {'1': 'one_of_is_trash'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `UpdateAppParams`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List updateAppParamsDescriptor = $convert.base64Decode('Cg9VcGRhdGVBcHBQYXJhbXMSFQoGYXBwX2lkGAEgASgJUgVhcHBJZBIjCgx3b3Jrc3BhY2VfaWQYAiABKAlIAFILd29ya3NwYWNlSWQSFAoEbmFtZRgDIAEoCUgBUgRuYW1lEhQKBGRlc2MYBCABKAlIAlIEZGVzYxIuCgtjb2xvcl9zdHlsZRgFIAEoCzILLkNvbG9yU3R5bGVIA1IKY29sb3JTdHlsZRIbCghpc190cmFzaBgGIAEoCEgEUgdpc1RyYXNoQhUKE29uZV9vZl93b3Jrc3BhY2VfaWRCDQoLb25lX29mX25hbWVCDQoLb25lX29mX2Rlc2NCFAoSb25lX29mX2NvbG9yX3N0eWxlQhEKD29uZV9vZl9pc190cmFzaA==');
|
||||
|
@ -14,6 +14,7 @@ class WsErrCode extends $pb.ProtobufEnum {
|
||||
static const WsErrCode WorkspaceNameInvalid = WsErrCode._(1, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceNameInvalid');
|
||||
static const WsErrCode WorkspaceIdInvalid = WsErrCode._(2, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceIdInvalid');
|
||||
static const WsErrCode AppColorStyleInvalid = WsErrCode._(3, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppColorStyleInvalid');
|
||||
static const WsErrCode WorkspaceDescInvalid = WsErrCode._(4, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'WorkspaceDescInvalid');
|
||||
static const WsErrCode AppIdInvalid = WsErrCode._(10, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppIdInvalid');
|
||||
static const WsErrCode AppNameInvalid = WsErrCode._(11, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'AppNameInvalid');
|
||||
static const WsErrCode ViewNameInvalid = WsErrCode._(20, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ViewNameInvalid');
|
||||
@ -25,12 +26,14 @@ class WsErrCode extends $pb.ProtobufEnum {
|
||||
static const WsErrCode UserInternalError = WsErrCode._(102, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserInternalError');
|
||||
static const WsErrCode UserNotLoginYet = WsErrCode._(103, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'UserNotLoginYet');
|
||||
static const WsErrCode ServerError = WsErrCode._(1000, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'ServerError');
|
||||
static const WsErrCode RecordNotFound = WsErrCode._(1001, const $core.bool.fromEnvironment('protobuf.omit_enum_names') ? '' : 'RecordNotFound');
|
||||
|
||||
static const $core.List<WsErrCode> values = <WsErrCode> [
|
||||
Unknown,
|
||||
WorkspaceNameInvalid,
|
||||
WorkspaceIdInvalid,
|
||||
AppColorStyleInvalid,
|
||||
WorkspaceDescInvalid,
|
||||
AppIdInvalid,
|
||||
AppNameInvalid,
|
||||
ViewNameInvalid,
|
||||
@ -42,6 +45,7 @@ class WsErrCode extends $pb.ProtobufEnum {
|
||||
UserInternalError,
|
||||
UserNotLoginYet,
|
||||
ServerError,
|
||||
RecordNotFound,
|
||||
];
|
||||
|
||||
static final $core.Map<$core.int, WsErrCode> _byValue = $pb.ProtobufEnum.initByValue(values);
|
||||
|
@ -16,6 +16,7 @@ const WsErrCode$json = const {
|
||||
const {'1': 'WorkspaceNameInvalid', '2': 1},
|
||||
const {'1': 'WorkspaceIdInvalid', '2': 2},
|
||||
const {'1': 'AppColorStyleInvalid', '2': 3},
|
||||
const {'1': 'WorkspaceDescInvalid', '2': 4},
|
||||
const {'1': 'AppIdInvalid', '2': 10},
|
||||
const {'1': 'AppNameInvalid', '2': 11},
|
||||
const {'1': 'ViewNameInvalid', '2': 20},
|
||||
@ -27,11 +28,12 @@ const WsErrCode$json = const {
|
||||
const {'1': 'UserInternalError', '2': 102},
|
||||
const {'1': 'UserNotLoginYet', '2': 103},
|
||||
const {'1': 'ServerError', '2': 1000},
|
||||
const {'1': 'RecordNotFound', '2': 1001},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `WsErrCode`. Decode as a `google.protobuf.EnumDescriptorProto`.
|
||||
final $typed_data.Uint8List wsErrCodeDescriptor = $convert.base64Decode('CglXc0VyckNvZGUSCwoHVW5rbm93bhAAEhgKFFdvcmtzcGFjZU5hbWVJbnZhbGlkEAESFgoSV29ya3NwYWNlSWRJbnZhbGlkEAISGAoUQXBwQ29sb3JTdHlsZUludmFsaWQQAxIQCgxBcHBJZEludmFsaWQQChISCg5BcHBOYW1lSW52YWxpZBALEhMKD1ZpZXdOYW1lSW52YWxpZBAUEhgKFFZpZXdUaHVtYm5haWxJbnZhbGlkEBUSEQoNVmlld0lkSW52YWxpZBAWEhMKD1ZpZXdEZXNjSW52YWxpZBAXEhoKFkRhdGFiYXNlQ29ubmVjdGlvbkZhaWwQZBIaChZXb3Jrc3BhY2VEYXRhYmFzZUVycm9yEGUSFQoRVXNlckludGVybmFsRXJyb3IQZhITCg9Vc2VyTm90TG9naW5ZZXQQZxIQCgtTZXJ2ZXJFcnJvchDoBw==');
|
||||
final $typed_data.Uint8List wsErrCodeDescriptor = $convert.base64Decode('CglXc0VyckNvZGUSCwoHVW5rbm93bhAAEhgKFFdvcmtzcGFjZU5hbWVJbnZhbGlkEAESFgoSV29ya3NwYWNlSWRJbnZhbGlkEAISGAoUQXBwQ29sb3JTdHlsZUludmFsaWQQAxIYChRXb3Jrc3BhY2VEZXNjSW52YWxpZBAEEhAKDEFwcElkSW52YWxpZBAKEhIKDkFwcE5hbWVJbnZhbGlkEAsSEwoPVmlld05hbWVJbnZhbGlkEBQSGAoUVmlld1RodW1ibmFpbEludmFsaWQQFRIRCg1WaWV3SWRJbnZhbGlkEBYSEwoPVmlld0Rlc2NJbnZhbGlkEBcSGgoWRGF0YWJhc2VDb25uZWN0aW9uRmFpbBBkEhoKFldvcmtzcGFjZURhdGFiYXNlRXJyb3IQZRIVChFVc2VySW50ZXJuYWxFcnJvchBmEhMKD1VzZXJOb3RMb2dpbllldBBnEhAKC1NlcnZlckVycm9yEOgHEhMKDlJlY29yZE5vdEZvdW5kEOkH');
|
||||
@$core.Deprecated('Use workspaceErrorDescriptor instead')
|
||||
const WorkspaceError$json = const {
|
||||
'1': 'WorkspaceError',
|
||||
|
@ -72,18 +72,8 @@ class CreateWorkspaceRequest extends $pb.GeneratedMessage {
|
||||
void clearDesc() => clearField(2);
|
||||
}
|
||||
|
||||
enum CreateWorkspaceParams_OneOfUserId {
|
||||
userId,
|
||||
notSet
|
||||
}
|
||||
|
||||
class CreateWorkspaceParams extends $pb.GeneratedMessage {
|
||||
static const $core.Map<$core.int, CreateWorkspaceParams_OneOfUserId> _CreateWorkspaceParams_OneOfUserIdByTag = {
|
||||
3 : CreateWorkspaceParams_OneOfUserId.userId,
|
||||
0 : CreateWorkspaceParams_OneOfUserId.notSet
|
||||
};
|
||||
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'CreateWorkspaceParams', createEmptyInstance: create)
|
||||
..oo(0, [3])
|
||||
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'name')
|
||||
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'desc')
|
||||
..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'userId')
|
||||
@ -129,9 +119,6 @@ class CreateWorkspaceParams extends $pb.GeneratedMessage {
|
||||
static CreateWorkspaceParams getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<CreateWorkspaceParams>(create);
|
||||
static CreateWorkspaceParams? _defaultInstance;
|
||||
|
||||
CreateWorkspaceParams_OneOfUserId whichOneOfUserId() => _CreateWorkspaceParams_OneOfUserIdByTag[$_whichOneof(0)]!;
|
||||
void clearOneOfUserId() => clearField($_whichOneof(0));
|
||||
|
||||
@$pb.TagNumber(1)
|
||||
$core.String get name => $_getSZ(0);
|
||||
@$pb.TagNumber(1)
|
||||
|
@ -25,15 +25,12 @@ const CreateWorkspaceParams$json = const {
|
||||
'2': const [
|
||||
const {'1': 'name', '3': 1, '4': 1, '5': 9, '10': 'name'},
|
||||
const {'1': 'desc', '3': 2, '4': 1, '5': 9, '10': 'desc'},
|
||||
const {'1': 'user_id', '3': 3, '4': 1, '5': 9, '9': 0, '10': 'userId'},
|
||||
],
|
||||
'8': const [
|
||||
const {'1': 'one_of_user_id'},
|
||||
const {'1': 'user_id', '3': 3, '4': 1, '5': 9, '10': 'userId'},
|
||||
],
|
||||
};
|
||||
|
||||
/// Descriptor for `CreateWorkspaceParams`. Decode as a `google.protobuf.DescriptorProto`.
|
||||
final $typed_data.Uint8List createWorkspaceParamsDescriptor = $convert.base64Decode('ChVDcmVhdGVXb3Jrc3BhY2VQYXJhbXMSEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRkZXNjGAIgASgJUgRkZXNjEhkKB3VzZXJfaWQYAyABKAlIAFIGdXNlcklkQhAKDm9uZV9vZl91c2VyX2lk');
|
||||
final $typed_data.Uint8List createWorkspaceParamsDescriptor = $convert.base64Decode('ChVDcmVhdGVXb3Jrc3BhY2VQYXJhbXMSEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRkZXNjGAIgASgJUgRkZXNjEhcKB3VzZXJfaWQYAyABKAlSBnVzZXJJZA==');
|
||||
@$core.Deprecated('Use workspaceDescriptor instead')
|
||||
const Workspace$json = const {
|
||||
'1': 'Workspace',
|
||||
|
@ -34,6 +34,7 @@ anyhow = "1.0.40"
|
||||
thiserror = "1.0.24"
|
||||
bcrypt = "0.10"
|
||||
jsonwebtoken = "7.2"
|
||||
sql-builder = "3.1.1"
|
||||
|
||||
flowy-log = { path = "../rust-lib/flowy-log" }
|
||||
flowy-user = { path = "../rust-lib/flowy-user" }
|
||||
|
@ -56,3 +56,19 @@ By default, Docker images do not expose their ports to the underlying host machi
|
||||
**Type mapping**
|
||||
* [postgres type map](https://docs.rs/sqlx/0.5.7/sqlx/postgres/types/index.html)
|
||||
* [postgres and diesel type map](https://kotiri.com/2018/01/31/postgresql-diesel-rust-types.html)
|
||||
|
||||
|
||||
## Q&A
|
||||
1. Receive` { code: 24, kind: Other, message: "Too many open files" } on arbiter` after running cargo test on backend.
|
||||
> This is due to a limit enforced by the operating system on the maximum number of open file descriptors (including sockets) for each process.
|
||||
> Raising the file descriptor limit using `ulimit -n 2048` to solve this issue. It won't stay after reboot so check on google how to persist
|
||||
> that value if you want to.
|
||||
>
|
||||
> or you can try:
|
||||
> `launchctl limit maxfiles 2048 2048`
|
||||
> `launchctl limit maxfiles`
|
||||
>
|
||||
> Don't forget to relaunch your terminal.
|
||||
|
||||
## More
|
||||
* [11-database-drivers](https://blog.logrocket.com/11-database-drivers-and-orms-for-rust-that-are-ready-for-production/)
|
@ -1,5 +1,5 @@
|
||||
-- Add migration script here
|
||||
CREATE TABLE user_table(
|
||||
CREATE TABLE IF NOT EXISTS user_table(
|
||||
id uuid NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
email TEXT NOT NULL UNIQUE,
|
||||
|
@ -1,5 +1,5 @@
|
||||
-- Add migration script here
|
||||
CREATE TABLE workspace_table(
|
||||
CREATE TABLE IF NOT EXISTS workspace_table(
|
||||
id uuid NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
name TEXT NOT NULL,
|
||||
|
@ -1,5 +1,5 @@
|
||||
-- Add migration script here
|
||||
CREATE TABLE app_table(
|
||||
CREATE TABLE IF NOT EXISTS app_table(
|
||||
id uuid NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
workspace_id TEXT NOT NULL,
|
||||
|
@ -1,5 +1,5 @@
|
||||
-- Add migration script here
|
||||
CREATE TABLE view_table(
|
||||
CREATE TABLE IF NOT EXISTS view_table(
|
||||
id uuid NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
belong_to_id TEXT NOT NULL,
|
||||
|
@ -80,10 +80,10 @@ fn user_scope() -> Scope {
|
||||
.route(web::patch().to(workspace::update_handler))
|
||||
)
|
||||
.service(web::resource("/app")
|
||||
.route(web::post().to(app::create_app))
|
||||
.route(web::delete().to(app::delete_app))
|
||||
.route(web::get().to(app::read_app))
|
||||
.route(web::patch().to(app::update_app))
|
||||
.route(web::post().to(app::create_handler))
|
||||
.route(web::delete().to(app::delete_handler))
|
||||
.route(web::get().to(app::read_handler))
|
||||
.route(web::patch().to(app::update_handler))
|
||||
)
|
||||
.service(web::resource("/view")
|
||||
.route(web::post().to(view::create_view))
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::config::MAX_PAYLOAD_SIZE;
|
||||
use actix_web::web;
|
||||
use flowy_net::{
|
||||
errors::{ErrorCode, Kind, ServerError},
|
||||
errors::{ErrorCode, ServerError},
|
||||
response::*,
|
||||
};
|
||||
use futures::StreamExt;
|
||||
@ -29,7 +29,6 @@ pub async fn poll_payload(mut payload: web::Payload) -> Result<web::BytesMut, Se
|
||||
return Err(ServerError::new(
|
||||
"Payload overflow".to_string(),
|
||||
ErrorCode::PayloadOverflow,
|
||||
Kind::Other,
|
||||
));
|
||||
}
|
||||
body.extend_from_slice(&chunk);
|
||||
|
@ -1,3 +1,6 @@
|
||||
mod query;
|
||||
mod utils;
|
||||
|
||||
pub use utils::*;
|
||||
|
||||
pub use query::*;
|
||||
|
@ -1,38 +1,170 @@
|
||||
use sqlx::{any::AnyArguments, Arguments, Encode, PgPool, Postgres, Type};
|
||||
use flowy_net::errors::ServerError;
|
||||
use sql_builder::SqlBuilder as InnerBuilder;
|
||||
use sqlx::{any::AnyArguments, postgres::PgArguments, Arguments, Encode, PgPool, Postgres, Type};
|
||||
|
||||
use sqlx::postgres::PgArguments;
|
||||
|
||||
pub struct UpdateBuilder {
|
||||
arguments: PgArguments,
|
||||
table: String,
|
||||
fields: String,
|
||||
enum BuilderType {
|
||||
Create,
|
||||
Select,
|
||||
Update,
|
||||
Delete,
|
||||
}
|
||||
|
||||
impl UpdateBuilder {
|
||||
pub fn new(table: &str) -> Self {
|
||||
pub struct SqlBuilder {
|
||||
table: String,
|
||||
fields: Vec<String>,
|
||||
filters: Vec<String>,
|
||||
fields_args: PgArguments,
|
||||
ty: BuilderType,
|
||||
}
|
||||
|
||||
impl SqlBuilder {
|
||||
fn new(table: &str) -> Self {
|
||||
Self {
|
||||
table: table.to_owned(),
|
||||
fields: String::new(),
|
||||
arguments: PgArguments::default(),
|
||||
fields: vec![],
|
||||
filters: vec![],
|
||||
fields_args: PgArguments::default(),
|
||||
ty: BuilderType::Select,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn add_argument<'a, T>(&mut self, column: &str, arg: Option<T>)
|
||||
pub fn create(table: &str) -> Self {
|
||||
let mut builder = Self::new(table);
|
||||
builder.ty = BuilderType::Create;
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn select(table: &str) -> Self {
|
||||
let mut builder = Self::new(table);
|
||||
builder.ty = BuilderType::Select;
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn update(table: &str) -> Self {
|
||||
let mut builder = Self::new(table);
|
||||
builder.ty = BuilderType::Update;
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn delete(table: &str) -> Self {
|
||||
let mut builder = Self::new(table);
|
||||
builder.ty = BuilderType::Delete;
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn add_arg<'a, T>(mut self, field: &str, arg: T) -> Self
|
||||
where
|
||||
T: 'a + Send + Encode<'a, Postgres> + Type<Postgres>,
|
||||
{
|
||||
self.fields.push(field.to_owned());
|
||||
self.fields_args.add(arg);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn add_arg_if<'a, T>(self, add: bool, field: &str, arg: T) -> Self
|
||||
where
|
||||
T: 'a + Send + Encode<'a, Postgres> + Type<Postgres>,
|
||||
{
|
||||
if add {
|
||||
self.add_arg(field, arg)
|
||||
} else {
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
pub fn add_some_arg<'a, T>(self, field: &str, arg: Option<T>) -> Self
|
||||
where
|
||||
T: 'a + Send + Encode<'a, Postgres> + Type<Postgres>,
|
||||
{
|
||||
if let Some(arg) = arg {
|
||||
if self.fields.is_empty() {
|
||||
self.fields += &format!("{}=?", column);
|
||||
self.add_arg(field, arg)
|
||||
} else {
|
||||
self.fields += &format!(", {}=?", column);
|
||||
}
|
||||
self.arguments.add(arg);
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
pub fn build(self) -> (String, PgArguments) {
|
||||
let sql = format!("UPDATE {} SET {} WHERE id=?", self.table, self.fields);
|
||||
(sql, self.arguments)
|
||||
pub fn add_field(mut self, field: &str) -> Self {
|
||||
self.fields.push(field.to_owned());
|
||||
self
|
||||
}
|
||||
|
||||
pub fn and_where_eq<'a, T>(mut self, field: &str, arg: T) -> Self
|
||||
where
|
||||
T: 'a + Send + Encode<'a, Postgres> + Type<Postgres>,
|
||||
{
|
||||
self.filters.push(field.to_owned());
|
||||
self.fields_args.add(arg);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn build(self) -> Result<(String, PgArguments), ServerError> {
|
||||
match self.ty {
|
||||
BuilderType::Create => {
|
||||
let mut inner = InnerBuilder::insert_into(&self.table);
|
||||
self.fields.iter().for_each(|field| {
|
||||
inner.field(field);
|
||||
});
|
||||
|
||||
let values = self
|
||||
.fields
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(index, _)| format!("${}", index + 1))
|
||||
.collect::<Vec<String>>();
|
||||
|
||||
inner.values(&values);
|
||||
|
||||
let sql = inner.sql()?;
|
||||
Ok((sql, self.fields_args))
|
||||
},
|
||||
BuilderType::Select => {
|
||||
let mut inner = InnerBuilder::select_from(&self.table);
|
||||
self.fields.into_iter().for_each(|field| {
|
||||
inner.field(field);
|
||||
});
|
||||
|
||||
self.filters
|
||||
.into_iter()
|
||||
.enumerate()
|
||||
.for_each(|(index, filter)| {
|
||||
inner.and_where_eq(filter, format!("${}", index + 1));
|
||||
});
|
||||
|
||||
let sql = inner.sql()?;
|
||||
Ok((sql, self.fields_args))
|
||||
},
|
||||
BuilderType::Update => {
|
||||
let mut inner = InnerBuilder::update_table(&self.table);
|
||||
let field_len = self.fields.len();
|
||||
self.fields
|
||||
.into_iter()
|
||||
.enumerate()
|
||||
.for_each(|(index, field)| {
|
||||
inner.set(&field, format!("${}", index + 1));
|
||||
});
|
||||
|
||||
self.filters
|
||||
.into_iter()
|
||||
.enumerate()
|
||||
.for_each(|(index, filter)| {
|
||||
let index = index + field_len;
|
||||
inner.and_where_eq(filter, format!("${}", index + 1));
|
||||
});
|
||||
|
||||
let sql = inner.sql()?;
|
||||
Ok((sql, self.fields_args))
|
||||
},
|
||||
BuilderType::Delete => {
|
||||
let mut inner = InnerBuilder::delete_from(&self.table);
|
||||
self.filters
|
||||
.into_iter()
|
||||
.enumerate()
|
||||
.for_each(|(index, filter)| {
|
||||
inner.and_where_eq(filter, format!("${}", index + 1));
|
||||
});
|
||||
let sql = inner.sql()?;
|
||||
Ok((sql, self.fields_args))
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
9
backend/src/sqlx_ext/utils.rs
Normal file
9
backend/src/sqlx_ext/utils.rs
Normal file
@ -0,0 +1,9 @@
|
||||
use flowy_net::errors::{ErrorCode, ServerError};
|
||||
use sqlx::Error;
|
||||
|
||||
pub fn map_sqlx_error(error: sqlx::Error) -> ServerError {
|
||||
match error {
|
||||
Error::RowNotFound => ServerError::new("".to_string(), ErrorCode::RecordNotFound),
|
||||
_ => ServerError::internal().context(error),
|
||||
}
|
||||
}
|
@ -6,7 +6,7 @@ use actix_identity::Identity;
|
||||
use anyhow::Context;
|
||||
use chrono::Utc;
|
||||
use flowy_net::{
|
||||
errors::{ErrorCode, Kind, ServerError},
|
||||
errors::{ErrorCode, ServerError},
|
||||
response::FlowyResponse,
|
||||
};
|
||||
use flowy_user::{
|
||||
@ -102,7 +102,6 @@ async fn is_email_exist(
|
||||
Some(_) => Err(ServerError {
|
||||
code: ErrorCode::EmailAlreadyExists,
|
||||
msg: format!("{} already exists", email),
|
||||
kind: Kind::User,
|
||||
}),
|
||||
None => Ok(()),
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
use bcrypt::{hash, verify, BcryptError, DEFAULT_COST};
|
||||
use flowy_net::errors::{ErrorCode, Kind, ServerError};
|
||||
use flowy_net::errors::{ErrorCode, ServerError};
|
||||
use jsonwebtoken::Algorithm;
|
||||
|
||||
pub fn uuid() -> String { uuid::Uuid::new_v4().to_string() }
|
||||
@ -19,7 +19,6 @@ pub fn verify_password(source: &str, hash: &str) -> Result<bool, ServerError> {
|
||||
_ => Err(ServerError::new(
|
||||
"Username and password don't match".to_string(),
|
||||
ErrorCode::PasswordNotMatch,
|
||||
Kind::User,
|
||||
)),
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,214 @@
|
||||
use flowy_net::{errors::ServerError, response::FlowyResponse};
|
||||
|
||||
use crate::{
|
||||
entities::workspace::AppTable,
|
||||
sqlx_ext::{map_sqlx_error, SqlBuilder},
|
||||
};
|
||||
use anyhow::Context;
|
||||
use chrono::Utc;
|
||||
use flowy_net::errors::invalid_params;
|
||||
use flowy_user::entities::parser::UserId;
|
||||
use flowy_workspace::{
|
||||
entities::{
|
||||
app::{
|
||||
parser::{AppColorStyle, AppDesc, AppId, AppName},
|
||||
App,
|
||||
},
|
||||
view::RepeatedView,
|
||||
workspace::parser::WorkspaceId,
|
||||
},
|
||||
protobuf::{CreateAppParams, QueryAppParams, UpdateAppParams},
|
||||
};
|
||||
use protobuf::Message;
|
||||
use sqlx::{postgres::PgArguments, PgPool, Postgres};
|
||||
use uuid::Uuid;
|
||||
|
||||
pub(crate) async fn create_app(
|
||||
pool: &PgPool,
|
||||
params: CreateAppParams,
|
||||
) -> Result<FlowyResponse, ServerError> {
|
||||
let color_bytes = params.get_color_style().write_to_bytes()?;
|
||||
let name = AppName::parse(params.name).map_err(invalid_params)?;
|
||||
let workspace_id = WorkspaceId::parse(params.workspace_id).map_err(invalid_params)?;
|
||||
let user_id = UserId::parse(params.user_id).map_err(invalid_params)?;
|
||||
let desc = AppDesc::parse(params.desc).map_err(invalid_params)?;
|
||||
|
||||
let mut transaction = pool
|
||||
.begin()
|
||||
.await
|
||||
.context("Failed to acquire a Postgres connection to create app")?;
|
||||
|
||||
let uuid = uuid::Uuid::new_v4();
|
||||
let time = Utc::now();
|
||||
|
||||
let (sql, args) = SqlBuilder::create("app_table")
|
||||
.add_arg("id", uuid)
|
||||
.add_arg("workspace_id", workspace_id.as_ref())
|
||||
.add_arg("name", name.as_ref())
|
||||
.add_arg("description", desc.as_ref())
|
||||
.add_arg("color_style", color_bytes)
|
||||
.add_arg("modified_time", &time)
|
||||
.add_arg("create_time", &time)
|
||||
.add_arg("user_id", user_id.as_ref())
|
||||
.build()?;
|
||||
|
||||
let _ = sqlx::query_with(&sql, args)
|
||||
.execute(&mut transaction)
|
||||
.await
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
.await
|
||||
.context("Failed to commit SQL transaction to create app.")?;
|
||||
|
||||
let app = App {
|
||||
id: uuid.to_string(),
|
||||
workspace_id: workspace_id.as_ref().to_owned(),
|
||||
name: name.as_ref().to_string(),
|
||||
desc: desc.as_ref().to_string(),
|
||||
belongings: RepeatedView::default(),
|
||||
version: 0,
|
||||
};
|
||||
|
||||
FlowyResponse::success().data(app)
|
||||
}
|
||||
|
||||
pub(crate) async fn read_app(
|
||||
pool: &PgPool,
|
||||
params: QueryAppParams,
|
||||
) -> Result<FlowyResponse, ServerError> {
|
||||
let app_id = check_app_id(params.app_id)?;
|
||||
|
||||
let mut transaction = pool
|
||||
.begin()
|
||||
.await
|
||||
.context("Failed to acquire a Postgres connection to read app")?;
|
||||
|
||||
let (sql, args) = SqlBuilder::select("app_table")
|
||||
.add_field("*")
|
||||
.and_where_eq("id", app_id)
|
||||
.build()?;
|
||||
|
||||
let table = sqlx::query_as_with::<Postgres, AppTable, PgArguments>(&sql, args)
|
||||
.fetch_one(&mut transaction)
|
||||
.await
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
.await
|
||||
.context("Failed to commit SQL transaction to read app.")?;
|
||||
|
||||
let mut app = App {
|
||||
id: table.id.to_string(),
|
||||
workspace_id: table.workspace_id,
|
||||
name: table.name,
|
||||
desc: table.description,
|
||||
belongings: RepeatedView::default(),
|
||||
version: 0,
|
||||
};
|
||||
|
||||
if params.read_belongings {
|
||||
// app.belongings
|
||||
}
|
||||
|
||||
FlowyResponse::success().data(app)
|
||||
}
|
||||
|
||||
pub(crate) async fn update_app(
|
||||
pool: &PgPool,
|
||||
params: UpdateAppParams,
|
||||
) -> Result<FlowyResponse, ServerError> {
|
||||
let app_id = check_app_id(params.get_app_id().to_string())?;
|
||||
let name = match params.has_name() {
|
||||
false => None,
|
||||
true => Some(
|
||||
AppName::parse(params.get_name().to_owned())
|
||||
.map_err(invalid_params)?
|
||||
.0,
|
||||
),
|
||||
};
|
||||
|
||||
let workspace_id = match params.has_workspace_id() {
|
||||
false => None,
|
||||
true => Some(
|
||||
WorkspaceId::parse(params.get_workspace_id().to_owned())
|
||||
.map_err(invalid_params)?
|
||||
.0,
|
||||
),
|
||||
};
|
||||
|
||||
let color_style = match params.has_color_style() {
|
||||
false => None,
|
||||
true => {
|
||||
let color_bytes = params.get_color_style().write_to_bytes()?;
|
||||
Some(color_bytes)
|
||||
},
|
||||
};
|
||||
|
||||
let desc = match params.has_desc() {
|
||||
false => None,
|
||||
true => Some(
|
||||
AppDesc::parse(params.get_desc().to_owned())
|
||||
.map_err(invalid_params)?
|
||||
.0,
|
||||
),
|
||||
};
|
||||
|
||||
let mut transaction = pool
|
||||
.begin()
|
||||
.await
|
||||
.context("Failed to acquire a Postgres connection to update app")?;
|
||||
|
||||
let (sql, args) = SqlBuilder::update("app_table")
|
||||
.add_some_arg("name", name)
|
||||
.add_some_arg("workspace_id", workspace_id)
|
||||
.add_some_arg("color_style", color_style)
|
||||
.add_some_arg("description", desc)
|
||||
.add_arg_if(params.has_is_trash(), "is_trash", params.get_is_trash())
|
||||
.and_where_eq("id", app_id)
|
||||
.build()?;
|
||||
|
||||
sqlx::query_with(&sql, args)
|
||||
.execute(&mut transaction)
|
||||
.await
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
.await
|
||||
.context("Failed to commit SQL transaction to update app.")?;
|
||||
|
||||
Ok(FlowyResponse::success())
|
||||
}
|
||||
|
||||
pub(crate) async fn delete_app(pool: &PgPool, app_id: &str) -> Result<FlowyResponse, ServerError> {
|
||||
let app_id = check_app_id(app_id.to_owned())?;
|
||||
let mut transaction = pool
|
||||
.begin()
|
||||
.await
|
||||
.context("Failed to acquire a Postgres connection to delete app")?;
|
||||
|
||||
let (sql, args) = SqlBuilder::delete("app_table")
|
||||
.and_where_eq("id", app_id)
|
||||
.build()?;
|
||||
|
||||
let _ = sqlx::query_with(&sql, args)
|
||||
.execute(&mut transaction)
|
||||
.await
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
.await
|
||||
.context("Failed to commit SQL transaction to delete app.")?;
|
||||
|
||||
Ok(FlowyResponse::success())
|
||||
}
|
||||
|
||||
fn check_app_id(id: String) -> Result<Uuid, ServerError> {
|
||||
let app_id = AppId::parse(id).map_err(invalid_params)?;
|
||||
let app_id = Uuid::parse_str(app_id.as_ref())?;
|
||||
Ok(app_id)
|
||||
}
|
@ -1,3 +1,7 @@
|
||||
use crate::{
|
||||
routers::utils::parse_from_payload,
|
||||
workspace_service::app::app::{create_app, delete_app, read_app, update_app},
|
||||
};
|
||||
use actix_identity::Identity;
|
||||
use actix_web::{
|
||||
web::{Data, Payload},
|
||||
@ -6,36 +10,46 @@ use actix_web::{
|
||||
HttpResponse,
|
||||
};
|
||||
use flowy_net::errors::ServerError;
|
||||
use flowy_workspace::protobuf::{
|
||||
CreateAppParams,
|
||||
DeleteAppParams,
|
||||
QueryAppParams,
|
||||
UpdateAppParams,
|
||||
};
|
||||
use sqlx::PgPool;
|
||||
|
||||
pub async fn create_app(
|
||||
pub async fn create_handler(
|
||||
payload: Payload,
|
||||
id: Identity,
|
||||
pool: Data<PgPool>,
|
||||
) -> Result<HttpResponse, ServerError> {
|
||||
unimplemented!()
|
||||
let params: CreateAppParams = parse_from_payload(payload).await?;
|
||||
let resp = create_app(pool.get_ref(), params).await?;
|
||||
Ok(resp.into())
|
||||
}
|
||||
|
||||
pub async fn read_app(
|
||||
pub async fn read_handler(
|
||||
payload: Payload,
|
||||
id: Identity,
|
||||
pool: Data<PgPool>,
|
||||
) -> Result<HttpResponse, ServerError> {
|
||||
unimplemented!()
|
||||
let params: QueryAppParams = parse_from_payload(payload).await?;
|
||||
let resp = read_app(pool.get_ref(), params).await?;
|
||||
Ok(resp.into())
|
||||
}
|
||||
|
||||
pub async fn update_app(
|
||||
pub async fn update_handler(
|
||||
payload: Payload,
|
||||
id: Identity,
|
||||
pool: Data<PgPool>,
|
||||
) -> Result<HttpResponse, ServerError> {
|
||||
unimplemented!()
|
||||
let params: UpdateAppParams = parse_from_payload(payload).await?;
|
||||
let resp = update_app(pool.get_ref(), params).await?;
|
||||
Ok(resp.into())
|
||||
}
|
||||
|
||||
pub async fn delete_app(
|
||||
pub async fn delete_handler(
|
||||
payload: Payload,
|
||||
id: Identity,
|
||||
pool: Data<PgPool>,
|
||||
) -> Result<HttpResponse, ServerError> {
|
||||
unimplemented!()
|
||||
let params: DeleteAppParams = parse_from_payload(payload).await?;
|
||||
let resp = delete_app(pool.get_ref(), ¶ms.app_id).await?;
|
||||
Ok(resp.into())
|
||||
}
|
||||
|
@ -46,7 +46,7 @@ pub async fn delete_handler(
|
||||
pool: Data<PgPool>,
|
||||
) -> Result<HttpResponse, ServerError> {
|
||||
let params: DeleteWorkspaceParams = parse_from_payload(payload).await?;
|
||||
let resp = delete_workspace(pool.get_ref(), params).await?;
|
||||
let resp = delete_workspace(pool.get_ref(), params.get_workspace_id()).await?;
|
||||
Ok(resp.into())
|
||||
}
|
||||
|
||||
|
@ -1,13 +1,16 @@
|
||||
use crate::{entities::workspace::WorkspaceTable, sqlx_ext::UpdateBuilder};
|
||||
use crate::{entities::workspace::WorkspaceTable, sqlx_ext::*};
|
||||
use anyhow::Context;
|
||||
use chrono::Utc;
|
||||
use flowy_net::{errors::ServerError, response::FlowyResponse};
|
||||
use flowy_net::{
|
||||
errors::{invalid_params, ServerError},
|
||||
response::FlowyResponse,
|
||||
};
|
||||
use flowy_user::entities::parser::UserId;
|
||||
use flowy_workspace::{
|
||||
entities::{
|
||||
app::RepeatedApp,
|
||||
workspace::{
|
||||
parser::{WorkspaceId, WorkspaceName},
|
||||
parser::{WorkspaceDesc, WorkspaceId, WorkspaceName},
|
||||
Workspace,
|
||||
},
|
||||
},
|
||||
@ -18,17 +21,16 @@ use flowy_workspace::{
|
||||
UpdateWorkspaceParams,
|
||||
},
|
||||
};
|
||||
use sqlx::{PgPool, Postgres};
|
||||
use sqlx::{postgres::PgArguments, Arguments, PgPool, Postgres};
|
||||
use uuid::Uuid;
|
||||
|
||||
pub(crate) async fn create_workspace(
|
||||
pool: &PgPool,
|
||||
params: CreateWorkspaceParams,
|
||||
) -> Result<FlowyResponse, ServerError> {
|
||||
let name = WorkspaceName::parse(params.get_name().to_owned())
|
||||
.map_err(|e| ServerError::params_invalid().context(e))?;
|
||||
let user_id = UserId::parse(params.get_user_id().to_owned())
|
||||
.map_err(|e| ServerError::params_invalid().context(e))?;
|
||||
let name = WorkspaceName::parse(params.get_name().to_owned()).map_err(invalid_params)?;
|
||||
let desc = WorkspaceDesc::parse(params.get_desc().to_owned()).map_err(invalid_params)?;
|
||||
let user_id = UserId::parse(params.user_id).map_err(invalid_params)?;
|
||||
|
||||
let mut transaction = pool
|
||||
.begin()
|
||||
@ -37,21 +39,21 @@ pub(crate) async fn create_workspace(
|
||||
|
||||
let uuid = uuid::Uuid::new_v4();
|
||||
let time = Utc::now();
|
||||
let _ = sqlx::query!(
|
||||
r#"
|
||||
INSERT INTO workspace_table (id, name, description, modified_time, create_time, user_id)
|
||||
VALUES ($1, $2, $3, $4, $5, $6)
|
||||
"#,
|
||||
uuid,
|
||||
name.as_ref(),
|
||||
params.desc,
|
||||
time,
|
||||
time,
|
||||
user_id.as_ref(),
|
||||
)
|
||||
|
||||
// TODO: use macro to fetch each field from struct
|
||||
let (sql, args) = SqlBuilder::create("workspace_table")
|
||||
.add_arg("id", uuid)
|
||||
.add_arg("name", name.as_ref())
|
||||
.add_arg("description", desc.as_ref())
|
||||
.add_arg("modified_time", &time)
|
||||
.add_arg("create_time", &time)
|
||||
.add_arg("user_id", user_id.as_ref())
|
||||
.build()?;
|
||||
|
||||
let _ = sqlx::query_with(&sql, args)
|
||||
.execute(&mut transaction)
|
||||
.await
|
||||
.map_err(|e| ServerError::internal().context(e))?;
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
@ -61,7 +63,7 @@ pub(crate) async fn create_workspace(
|
||||
let workspace = Workspace {
|
||||
id: uuid.to_string(),
|
||||
name: name.as_ref().to_owned(),
|
||||
desc: params.desc,
|
||||
desc: desc.as_ref().to_owned(),
|
||||
apps: RepeatedApp::default(),
|
||||
};
|
||||
|
||||
@ -78,16 +80,15 @@ pub(crate) async fn read_workspace(
|
||||
.await
|
||||
.context("Failed to acquire a Postgres connection to read workspace")?;
|
||||
|
||||
let uuid = Uuid::parse_str(workspace_id.as_ref())?;
|
||||
let table =
|
||||
sqlx::query_as::<Postgres, WorkspaceTable>("SELECT * FROM workspace_table WHERE id = $1")
|
||||
.bind(uuid)
|
||||
let (sql, args) = SqlBuilder::select("workspace_table")
|
||||
.add_field("*")
|
||||
.and_where_eq("id", workspace_id)
|
||||
.build()?;
|
||||
|
||||
let table = sqlx::query_as_with::<Postgres, WorkspaceTable, PgArguments>(&sql, args)
|
||||
.fetch_one(&mut transaction)
|
||||
.await
|
||||
.map_err(|err| {
|
||||
//
|
||||
ServerError::internal().context(err)
|
||||
})?;
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
@ -95,7 +96,6 @@ pub(crate) async fn read_workspace(
|
||||
.context("Failed to commit SQL transaction to read workspace.")?;
|
||||
|
||||
let mut workspace = Workspace::new(table.id.to_string(), table.name, table.description);
|
||||
|
||||
if params.get_read_apps() {
|
||||
workspace.apps = RepeatedApp { items: vec![] }
|
||||
}
|
||||
@ -108,49 +108,68 @@ pub(crate) async fn update_workspace(
|
||||
params: UpdateWorkspaceParams,
|
||||
) -> Result<FlowyResponse, ServerError> {
|
||||
let workspace_id = check_workspace_id(params.get_id().to_owned())?;
|
||||
let name = match params.has_name() {
|
||||
false => None,
|
||||
true => {
|
||||
let name = WorkspaceName::parse(params.get_name().to_owned())
|
||||
.map_err(invalid_params)?
|
||||
.0;
|
||||
Some(name)
|
||||
},
|
||||
};
|
||||
|
||||
let desc = match params.has_desc() {
|
||||
false => None,
|
||||
true => {
|
||||
let desc = WorkspaceDesc::parse(params.get_desc().to_owned())
|
||||
.map_err(invalid_params)?
|
||||
.0;
|
||||
Some(desc)
|
||||
},
|
||||
};
|
||||
|
||||
let mut transaction = pool
|
||||
.begin()
|
||||
.await
|
||||
.context("Failed to acquire a Postgres connection to update workspace")?;
|
||||
|
||||
let mut builder = UpdateBuilder::new("workspace_table");
|
||||
if params.has_name() {
|
||||
builder.add_argument("name", Some(params.get_name()));
|
||||
}
|
||||
if params.has_desc() {
|
||||
builder.add_argument("description", Some(params.get_desc()));
|
||||
}
|
||||
builder.add_argument("id", Some(workspace_id.as_ref()));
|
||||
let (sql, args) = builder.build();
|
||||
let (sql, args) = SqlBuilder::update("workspace_table")
|
||||
.add_some_arg("name", name)
|
||||
.add_some_arg("description", desc)
|
||||
.and_where_eq("id", workspace_id)
|
||||
.build()?;
|
||||
|
||||
sqlx::query_with(&sql, args)
|
||||
.execute(&mut transaction)
|
||||
.await
|
||||
.map_err(|err| ServerError::internal().context(err))?;
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
.await
|
||||
.context("Failed to commit SQL transaction to update workspace.")?;
|
||||
|
||||
unimplemented!()
|
||||
Ok(FlowyResponse::success())
|
||||
}
|
||||
|
||||
pub(crate) async fn delete_workspace(
|
||||
pool: &PgPool,
|
||||
params: DeleteWorkspaceParams,
|
||||
workspace_id: &str,
|
||||
) -> Result<FlowyResponse, ServerError> {
|
||||
let workspace_id = check_workspace_id(params.get_workspace_id().to_owned())?;
|
||||
let workspace_id = check_workspace_id(workspace_id.to_owned())?;
|
||||
let mut transaction = pool
|
||||
.begin()
|
||||
.await
|
||||
.context("Failed to acquire a Postgres connection to delete workspace")?;
|
||||
|
||||
let _ = sqlx::query(r#"DELETE FROM workspace_table where workspace_id = $1"#)
|
||||
.bind(workspace_id.as_ref())
|
||||
let (sql, args) = SqlBuilder::delete("workspace_table")
|
||||
.and_where_eq("id", workspace_id)
|
||||
.build()?;
|
||||
|
||||
let _ = sqlx::query_with(&sql, args)
|
||||
.execute(&mut transaction)
|
||||
.await
|
||||
.map_err(|e| ServerError::internal().context(e))?;
|
||||
.map_err(map_sqlx_error)?;
|
||||
|
||||
transaction
|
||||
.commit()
|
||||
@ -160,8 +179,8 @@ pub(crate) async fn delete_workspace(
|
||||
Ok(FlowyResponse::success())
|
||||
}
|
||||
|
||||
fn check_workspace_id(id: String) -> Result<WorkspaceId, ServerError> {
|
||||
let workspace_id =
|
||||
WorkspaceId::parse(id).map_err(|e| ServerError::params_invalid().context(e))?;
|
||||
fn check_workspace_id(id: String) -> Result<Uuid, ServerError> {
|
||||
let workspace_id = WorkspaceId::parse(id).map_err(invalid_params)?;
|
||||
let workspace_id = Uuid::parse_str(workspace_id.as_ref())?;
|
||||
Ok(workspace_id)
|
||||
}
|
||||
|
@ -27,21 +27,51 @@ impl TestApp {
|
||||
resp
|
||||
}
|
||||
|
||||
pub async fn create_workspace(&self, mut params: CreateWorkspaceParams) -> Workspace {
|
||||
pub async fn create_workspace(&self, params: CreateWorkspaceParams) -> Workspace {
|
||||
let url = format!("{}/api/workspace", self.address);
|
||||
let response = self.register_test_user().await;
|
||||
params.user_id = Some(response.uid);
|
||||
let workspace = create_workspace_request(params, &url).await.unwrap();
|
||||
workspace
|
||||
}
|
||||
|
||||
pub async fn read_workspace(&self, params: QueryWorkspaceParams) -> Workspace {
|
||||
pub async fn read_workspace(&self, params: QueryWorkspaceParams) -> Option<Workspace> {
|
||||
let url = format!("{}/api/workspace", self.address);
|
||||
let workspace = read_workspace_request(params, &url).await.unwrap();
|
||||
workspace
|
||||
}
|
||||
|
||||
async fn register_test_user(&self) -> SignUpResponse {
|
||||
pub async fn update_workspace(&self, params: UpdateWorkspaceParams) {
|
||||
let url = format!("{}/api/workspace", self.address);
|
||||
update_workspace_request(params, &url).await.unwrap();
|
||||
}
|
||||
|
||||
pub async fn delete_workspace(&self, params: DeleteWorkspaceParams) {
|
||||
let url = format!("{}/api/workspace", self.address);
|
||||
delete_workspace_request(params, &url).await.unwrap();
|
||||
}
|
||||
|
||||
pub async fn create_app(&self, params: CreateAppParams) -> App {
|
||||
let url = format!("{}/api/app", self.address);
|
||||
let app = create_app_request(params, &url).await.unwrap();
|
||||
app
|
||||
}
|
||||
|
||||
pub async fn read_app(&self, params: QueryAppParams) -> Option<App> {
|
||||
let url = format!("{}/api/app", self.address);
|
||||
let app = read_app_request(params, &url).await.unwrap();
|
||||
app
|
||||
}
|
||||
|
||||
pub async fn update_app(&self, params: UpdateAppParams) {
|
||||
let url = format!("{}/api/app", self.address);
|
||||
update_app_request(params, &url).await.unwrap();
|
||||
}
|
||||
|
||||
pub async fn delete_app(&self, params: DeleteAppParams) {
|
||||
let url = format!("{}/api/app", self.address);
|
||||
delete_app_request(params, &url).await.unwrap();
|
||||
}
|
||||
|
||||
pub(crate) async fn register_test_user(&self) -> SignUpResponse {
|
||||
let params = SignUpParams {
|
||||
email: "annie@appflowy.io".to_string(),
|
||||
name: "annie".to_string(),
|
||||
|
@ -1,35 +1,158 @@
|
||||
use crate::helper::{spawn_app, TestApp};
|
||||
use flowy_workspace::entities::workspace::{CreateWorkspaceParams, QueryWorkspaceParams};
|
||||
use flowy_workspace::entities::{
|
||||
app::{App, ColorStyle, CreateAppParams, DeleteAppParams, QueryAppParams, UpdateAppParams},
|
||||
workspace::{
|
||||
CreateWorkspaceParams,
|
||||
DeleteWorkspaceParams,
|
||||
QueryWorkspaceParams,
|
||||
UpdateWorkspaceParams,
|
||||
Workspace,
|
||||
},
|
||||
};
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn workspace_create() {
|
||||
let app = spawn_app().await;
|
||||
|
||||
let params = CreateWorkspaceParams {
|
||||
name: "My first workspace".to_string(),
|
||||
desc: "This is my first workspace".to_string(),
|
||||
user_id: None,
|
||||
};
|
||||
|
||||
let workspace = app.create_workspace(params).await;
|
||||
let (workspace, _) = create_test_workspace(&app).await;
|
||||
log::info!("{:?}", workspace);
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn workspace_read() {
|
||||
let app = spawn_app().await;
|
||||
let params = CreateWorkspaceParams {
|
||||
name: "My first workspace".to_string(),
|
||||
desc: "This is my first workspace".to_string(),
|
||||
user_id: None,
|
||||
};
|
||||
let workspace_1 = app.create_workspace(params).await;
|
||||
let (workspace_1, _) = create_test_workspace(&app).await;
|
||||
|
||||
let read_params = QueryWorkspaceParams {
|
||||
workspace_id: workspace_1.id.clone(),
|
||||
read_apps: false,
|
||||
};
|
||||
let workspace_2 = app.read_workspace(read_params).await;
|
||||
|
||||
log::info!("{:?}", app.read_workspace(read_params).await.unwrap());
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn workspace_update() {
|
||||
let app = spawn_app().await;
|
||||
let (workspace_1, _) = create_test_workspace(&app).await;
|
||||
let update_params = UpdateWorkspaceParams {
|
||||
id: workspace_1.id.clone(),
|
||||
name: Some("workspace 2".to_string()),
|
||||
desc: Some("rename workspace description".to_string()),
|
||||
};
|
||||
app.update_workspace(update_params).await;
|
||||
|
||||
let read_params = QueryWorkspaceParams {
|
||||
workspace_id: workspace_1.id.clone(),
|
||||
read_apps: false,
|
||||
};
|
||||
let workspace_2 = app.read_workspace(read_params).await.unwrap();
|
||||
log::info!("{:?}", workspace_2);
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn workspace_delete() {
|
||||
let app = spawn_app().await;
|
||||
let (workspace, _) = create_test_workspace(&app).await;
|
||||
let delete_params = DeleteWorkspaceParams {
|
||||
workspace_id: workspace.id.clone(),
|
||||
};
|
||||
|
||||
let _ = app.delete_workspace(delete_params).await;
|
||||
let read_params = QueryWorkspaceParams {
|
||||
workspace_id: workspace.id.clone(),
|
||||
read_apps: false,
|
||||
};
|
||||
assert_eq!(app.read_workspace(read_params).await.is_none(), true);
|
||||
}
|
||||
|
||||
async fn create_test_workspace(app: &TestApp) -> (Workspace, String) {
|
||||
let response = app.register_test_user().await;
|
||||
|
||||
let params = CreateWorkspaceParams {
|
||||
name: "My first workspace".to_string(),
|
||||
desc: "This is my first workspace".to_string(),
|
||||
user_id: response.uid.clone(),
|
||||
};
|
||||
let workspace = app.create_workspace(params).await;
|
||||
(workspace, response.uid)
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn app_create() {
|
||||
let application = spawn_app().await;
|
||||
let app = create_test_app(&application).await;
|
||||
log::info!("{:?}", app);
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn app_read() {
|
||||
let application = spawn_app().await;
|
||||
let app = create_test_app(&application).await;
|
||||
|
||||
let read_params = QueryAppParams {
|
||||
app_id: app.id,
|
||||
read_belongings: false,
|
||||
is_trash: false,
|
||||
};
|
||||
|
||||
log::info!("{:?}", application.read_app(read_params).await.unwrap());
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn app_update() {
|
||||
let application = spawn_app().await;
|
||||
let app = create_test_app(&application).await;
|
||||
|
||||
let update_params = UpdateAppParams {
|
||||
app_id: app.id.clone(),
|
||||
workspace_id: None,
|
||||
name: Some("flowy".to_owned()),
|
||||
desc: None,
|
||||
color_style: None,
|
||||
is_trash: None,
|
||||
};
|
||||
application.update_app(update_params).await;
|
||||
|
||||
let read_params = QueryAppParams {
|
||||
app_id: app.id,
|
||||
read_belongings: false,
|
||||
is_trash: false,
|
||||
};
|
||||
|
||||
let app = application.read_app(read_params).await.unwrap();
|
||||
log::info!("{:?}", app);
|
||||
}
|
||||
|
||||
#[actix_rt::test]
|
||||
async fn app_delete() {
|
||||
let application = spawn_app().await;
|
||||
let app = create_test_app(&application).await;
|
||||
|
||||
let delete_params = DeleteAppParams {
|
||||
app_id: app.id.clone(),
|
||||
};
|
||||
application.delete_app(delete_params).await;
|
||||
|
||||
let read_params = QueryAppParams {
|
||||
app_id: app.id,
|
||||
read_belongings: false,
|
||||
is_trash: false,
|
||||
};
|
||||
|
||||
assert_eq!(application.read_app(read_params).await.is_none(), true);
|
||||
}
|
||||
|
||||
async fn create_test_app(app: &TestApp) -> App {
|
||||
let (workspace, user_id) = create_test_workspace(&app).await;
|
||||
|
||||
let params = CreateAppParams {
|
||||
workspace_id: workspace.id,
|
||||
name: "My first app".to_string(),
|
||||
desc: "This is my first app".to_string(),
|
||||
color_style: ColorStyle::default(),
|
||||
user_id,
|
||||
};
|
||||
|
||||
let app = app.create_app(params).await;
|
||||
app
|
||||
}
|
||||
|
@ -18,12 +18,16 @@ pub fn category_from_str(type_str: &str) -> TypeCategory {
|
||||
"ObservableSubject"
|
||||
| "KeyValue"
|
||||
| "QueryAppRequest"
|
||||
| "QueryAppParams"
|
||||
| "CreateAppRequest"
|
||||
| "ColorStyle"
|
||||
| "CreateAppParams"
|
||||
| "App"
|
||||
| "RepeatedApp"
|
||||
| "UpdateAppRequest"
|
||||
| "UpdateAppParams"
|
||||
| "DeleteAppRequest"
|
||||
| "DeleteAppParams"
|
||||
| "UpdateWorkspaceRequest"
|
||||
| "UpdateWorkspaceParams"
|
||||
| "DeleteWorkspaceRequest"
|
||||
|
@ -10,7 +10,6 @@ use uuid::Error;
|
||||
pub struct ServerError {
|
||||
pub code: ErrorCode,
|
||||
pub msg: String,
|
||||
pub kind: Kind,
|
||||
}
|
||||
|
||||
macro_rules! static_error {
|
||||
@ -20,7 +19,6 @@ macro_rules! static_error {
|
||||
ServerError {
|
||||
code: $status,
|
||||
msg: format!("{}", $status),
|
||||
kind: Kind::Other,
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -38,19 +36,18 @@ impl ServerError {
|
||||
static_error!(connect_cancel, ErrorCode::ConnectCancel);
|
||||
static_error!(connect_refused, ErrorCode::ConnectRefused);
|
||||
|
||||
pub fn new(msg: String, code: ErrorCode, kind: Kind) -> Self { Self { code, msg, kind } }
|
||||
|
||||
pub fn kind(mut self, kind: Kind) -> Self {
|
||||
self.kind = kind;
|
||||
self
|
||||
}
|
||||
pub fn new(msg: String, code: ErrorCode) -> Self { Self { code, msg } }
|
||||
|
||||
pub fn context<T: Debug>(mut self, error: T) -> Self {
|
||||
self.msg = format!("{:?}", error);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn is_not_found(&self) -> bool { self.code == ErrorCode::RecordNotFound }
|
||||
}
|
||||
|
||||
pub fn invalid_params<T: Debug>(e: T) -> ServerError { ServerError::params_invalid().context(e) }
|
||||
|
||||
impl std::fmt::Display for ServerError {
|
||||
fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
|
||||
let msg = format!("{:?}:{}", self.code, self.msg);
|
||||
@ -67,12 +64,6 @@ impl std::convert::From<&ServerError> for FlowyResponse {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub enum Kind {
|
||||
User,
|
||||
Other,
|
||||
}
|
||||
|
||||
#[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug, Clone, derive_more::Display)]
|
||||
#[repr(u16)]
|
||||
pub enum ErrorCode {
|
||||
@ -112,6 +103,8 @@ pub enum ErrorCode {
|
||||
|
||||
#[display(fmt = "Sql error")]
|
||||
SqlError = 200,
|
||||
#[display(fmt = "Record not found")]
|
||||
RecordNotFound = 201,
|
||||
|
||||
#[display(fmt = "Http request error")]
|
||||
HttpError = 300,
|
||||
|
@ -15,7 +15,7 @@ use tokio::sync::oneshot;
|
||||
pub struct HttpRequestBuilder {
|
||||
url: String,
|
||||
body: Option<Bytes>,
|
||||
response: Option<Bytes>,
|
||||
response: Option<Response>,
|
||||
method: Method,
|
||||
}
|
||||
|
||||
@ -41,6 +41,18 @@ impl HttpRequestBuilder {
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn patch(url: &str) -> Self {
|
||||
let mut builder = Self::new(url);
|
||||
builder.method = Method::PATCH;
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn delete(url: &str) -> Self {
|
||||
let mut builder = Self::new(url);
|
||||
builder.method = Method::DELETE;
|
||||
builder
|
||||
}
|
||||
|
||||
pub fn protobuf<T1>(mut self, body: T1) -> Result<Self, ServerError>
|
||||
where
|
||||
T1: TryInto<Bytes, Error = ProtobufError>,
|
||||
@ -70,22 +82,23 @@ impl HttpRequestBuilder {
|
||||
});
|
||||
|
||||
let response = rx.await??;
|
||||
let data = get_response_data(response).await?;
|
||||
self.response = Some(data);
|
||||
self.response = Some(response);
|
||||
Ok(self)
|
||||
}
|
||||
|
||||
pub fn response<T2>(mut self) -> Result<T2, ServerError>
|
||||
pub async fn response<T2>(self) -> Result<T2, ServerError>
|
||||
where
|
||||
T2: TryFrom<Bytes, Error = ProtobufError>,
|
||||
{
|
||||
let data = self.response.take();
|
||||
match data {
|
||||
match self.response {
|
||||
None => {
|
||||
let msg = format!("Request: {} receives unexpected empty body", self.url);
|
||||
Err(ServerError::payload_none().context(msg))
|
||||
},
|
||||
Some(data) => Ok(T2::try_from(data)?),
|
||||
Some(response) => {
|
||||
let data = get_response_data(response).await?;
|
||||
Ok(T2::try_from(data)?)
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
use crate::errors::{ErrorCode, Kind, ServerError};
|
||||
use crate::errors::{ErrorCode, ServerError};
|
||||
use bytes::Bytes;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{convert::TryInto, error::Error, fmt::Debug};
|
||||
@ -69,11 +69,7 @@ impl std::convert::From<reqwest::Error> for ServerError {
|
||||
|
||||
if hyper_error.is_timeout() {}
|
||||
|
||||
ServerError {
|
||||
code,
|
||||
msg,
|
||||
kind: Kind::Other,
|
||||
}
|
||||
ServerError { code, msg }
|
||||
},
|
||||
};
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ use bytes::Bytes;
|
||||
use derive_more::Display;
|
||||
use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
|
||||
use flowy_dispatch::prelude::{EventResponse, ResponseBuilder};
|
||||
use flowy_net::errors::Kind;
|
||||
use std::{
|
||||
convert::TryInto,
|
||||
fmt::{Debug, Formatter},
|
||||
|
@ -53,7 +53,8 @@ pub async fn user_sign_up(params: SignUpParams, url: &str) -> Result<SignUpRespo
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?
|
||||
.response()?;
|
||||
.response()
|
||||
.await?;
|
||||
Ok(response)
|
||||
}
|
||||
|
||||
@ -62,7 +63,8 @@ pub async fn user_sign_in(params: SignInParams, url: &str) -> Result<SignInRespo
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?
|
||||
.response()?;
|
||||
.response()
|
||||
.await?;
|
||||
Ok(response)
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@ use crate::{
|
||||
errors::*,
|
||||
impl_def_and_def_mut,
|
||||
};
|
||||
use bytes::Bytes;
|
||||
use flowy_derive::ProtoBuf;
|
||||
use std::convert::TryInto;
|
||||
|
||||
@ -25,17 +26,28 @@ pub struct CreateAppRequest {
|
||||
pub color_style: ColorStyle,
|
||||
}
|
||||
|
||||
#[derive(ProtoBuf, Default, Debug)]
|
||||
#[derive(ProtoBuf, Default, Debug, Clone)]
|
||||
pub struct ColorStyle {
|
||||
#[pb(index = 1)]
|
||||
pub theme_color: String,
|
||||
}
|
||||
|
||||
#[derive(ProtoBuf, Default)]
|
||||
pub struct CreateAppParams {
|
||||
#[pb(index = 1)]
|
||||
pub workspace_id: String,
|
||||
|
||||
#[pb(index = 2)]
|
||||
pub name: String,
|
||||
|
||||
#[pb(index = 3)]
|
||||
pub desc: String,
|
||||
|
||||
#[pb(index = 4)]
|
||||
pub color_style: ColorStyle,
|
||||
|
||||
#[pb(index = 5)]
|
||||
pub user_id: String,
|
||||
}
|
||||
|
||||
impl TryInto<CreateAppParams> for CreateAppRequest {
|
||||
@ -62,6 +74,7 @@ impl TryInto<CreateAppParams> for CreateAppRequest {
|
||||
name: name.0,
|
||||
desc: self.desc,
|
||||
color_style: color_style.0,
|
||||
user_id: "".to_string(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
use crate::{
|
||||
entities::app::parser::BelongToId,
|
||||
entities::app::parser::AppId,
|
||||
errors::{ErrorBuilder, WorkspaceError, WsErrCode},
|
||||
};
|
||||
use flowy_derive::ProtoBuf;
|
||||
@ -11,7 +11,9 @@ pub struct DeleteAppRequest {
|
||||
pub app_id: String,
|
||||
}
|
||||
|
||||
#[derive(Default, ProtoBuf)]
|
||||
pub struct DeleteAppParams {
|
||||
#[pb(index = 1)]
|
||||
pub app_id: String,
|
||||
}
|
||||
|
||||
@ -19,7 +21,7 @@ impl TryInto<DeleteAppParams> for DeleteAppRequest {
|
||||
type Error = WorkspaceError;
|
||||
|
||||
fn try_into(self) -> Result<DeleteAppParams, Self::Error> {
|
||||
let app_id = BelongToId::parse(self.app_id)
|
||||
let app_id = AppId::parse(self.app_id)
|
||||
.map_err(|e| ErrorBuilder::new(WsErrCode::AppIdInvalid).msg(e).build())?
|
||||
.0;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
use crate::{entities::app::parser::BelongToId, errors::*};
|
||||
use crate::{entities::app::parser::AppId, errors::*};
|
||||
use flowy_derive::ProtoBuf;
|
||||
use std::convert::TryInto;
|
||||
|
||||
@ -34,9 +34,15 @@ impl QueryAppRequest {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(ProtoBuf, Default)]
|
||||
pub struct QueryAppParams {
|
||||
#[pb(index = 1)]
|
||||
pub app_id: String,
|
||||
|
||||
#[pb(index = 2)]
|
||||
pub read_belongings: bool,
|
||||
|
||||
#[pb(index = 3)]
|
||||
pub is_trash: bool,
|
||||
}
|
||||
|
||||
@ -44,7 +50,7 @@ impl TryInto<QueryAppParams> for QueryAppRequest {
|
||||
type Error = WorkspaceError;
|
||||
|
||||
fn try_into(self) -> Result<QueryAppParams, Self::Error> {
|
||||
let app_id = BelongToId::parse(self.app_id)
|
||||
let app_id = AppId::parse(self.app_id)
|
||||
.map_err(|e| ErrorBuilder::new(WsErrCode::AppIdInvalid).msg(e).build())?
|
||||
.0;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::{
|
||||
entities::{
|
||||
app::{
|
||||
parser::{AppColorStyle, AppName, BelongToId},
|
||||
parser::{AppColorStyle, AppId, AppName},
|
||||
ColorStyle,
|
||||
},
|
||||
workspace::parser::WorkspaceId,
|
||||
@ -32,12 +32,24 @@ pub struct UpdateAppRequest {
|
||||
pub is_trash: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(ProtoBuf, Default)]
|
||||
pub struct UpdateAppParams {
|
||||
#[pb(index = 1)]
|
||||
pub app_id: String,
|
||||
|
||||
#[pb(index = 2, one_of)]
|
||||
pub workspace_id: Option<String>,
|
||||
|
||||
#[pb(index = 3, one_of)]
|
||||
pub name: Option<String>,
|
||||
|
||||
#[pb(index = 4, one_of)]
|
||||
pub desc: Option<String>,
|
||||
|
||||
#[pb(index = 5, one_of)]
|
||||
pub color_style: Option<ColorStyle>,
|
||||
|
||||
#[pb(index = 6, one_of)]
|
||||
pub is_trash: Option<bool>,
|
||||
}
|
||||
|
||||
@ -45,7 +57,7 @@ impl TryInto<UpdateAppParams> for UpdateAppRequest {
|
||||
type Error = WorkspaceError;
|
||||
|
||||
fn try_into(self) -> Result<UpdateAppParams, Self::Error> {
|
||||
let app_id = BelongToId::parse(self.app_id)
|
||||
let app_id = AppId::parse(self.app_id)
|
||||
.map_err(|e| ErrorBuilder::new(WsErrCode::AppIdInvalid).msg(e).build())?
|
||||
.0;
|
||||
|
||||
|
17
rust-lib/flowy-workspace/src/entities/app/parser/app_desc.rs
Normal file
17
rust-lib/flowy-workspace/src/entities/app/parser/app_desc.rs
Normal file
@ -0,0 +1,17 @@
|
||||
use unicode_segmentation::UnicodeSegmentation;
|
||||
#[derive(Debug)]
|
||||
pub struct AppDesc(pub String);
|
||||
|
||||
impl AppDesc {
|
||||
pub fn parse(s: String) -> Result<AppDesc, String> {
|
||||
if s.graphemes(true).count() > 1024 {
|
||||
return Err(format!("Workspace description too long"));
|
||||
}
|
||||
|
||||
Ok(Self(s))
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRef<str> for AppDesc {
|
||||
fn as_ref(&self) -> &str { &self.0 }
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
#[derive(Debug)]
|
||||
pub struct BelongToId(pub String);
|
||||
pub struct AppId(pub String);
|
||||
|
||||
impl BelongToId {
|
||||
pub fn parse(s: String) -> Result<BelongToId, String> {
|
||||
impl AppId {
|
||||
pub fn parse(s: String) -> Result<AppId, String> {
|
||||
if s.trim().is_empty() {
|
||||
return Err(format!("App id can not be empty or whitespace"));
|
||||
}
|
||||
@ -11,6 +11,6 @@ impl BelongToId {
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRef<str> for BelongToId {
|
||||
impl AsRef<str> for AppId {
|
||||
fn as_ref(&self) -> &str { &self.0 }
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
mod app_color_style;
|
||||
mod app_desc;
|
||||
mod app_id;
|
||||
mod app_name;
|
||||
mod belong_to_id;
|
||||
|
||||
pub use app_color_style::*;
|
||||
pub use app_desc::*;
|
||||
pub use app_id::*;
|
||||
pub use app_name::*;
|
||||
pub use belong_to_id::*;
|
||||
|
@ -1,5 +1,5 @@
|
||||
use crate::{
|
||||
entities::{app::parser::BelongToId, view::parser::*},
|
||||
entities::{app::parser::AppId, view::parser::*},
|
||||
errors::{ErrorBuilder, WorkspaceError, WsErrCode},
|
||||
impl_def_and_def_mut,
|
||||
sql_tables::view::ViewTableType,
|
||||
@ -51,7 +51,7 @@ impl TryInto<CreateViewParams> for CreateViewRequest {
|
||||
.map_err(|e| ErrorBuilder::new(WsErrCode::ViewNameInvalid).msg(e).build())?
|
||||
.0;
|
||||
|
||||
let belong_to_id = BelongToId::parse(self.belong_to_id)
|
||||
let belong_to_id = AppId::parse(self.belong_to_id)
|
||||
.map_err(|e| ErrorBuilder::new(WsErrCode::AppIdInvalid).msg(e).build())?
|
||||
.0;
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
mod workspace_desc;
|
||||
mod workspace_id;
|
||||
mod workspace_name;
|
||||
|
||||
pub use workspace_desc::*;
|
||||
pub use workspace_id::*;
|
||||
pub use workspace_name::*;
|
||||
|
@ -0,0 +1,18 @@
|
||||
use unicode_segmentation::UnicodeSegmentation;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct WorkspaceDesc(pub String);
|
||||
|
||||
impl WorkspaceDesc {
|
||||
pub fn parse(s: String) -> Result<WorkspaceDesc, String> {
|
||||
if s.graphemes(true).count() > 1024 {
|
||||
return Err(format!("Workspace description too long"));
|
||||
}
|
||||
|
||||
Ok(Self(s))
|
||||
}
|
||||
}
|
||||
|
||||
impl AsRef<str> for WorkspaceDesc {
|
||||
fn as_ref(&self) -> &str { &self.0 }
|
||||
}
|
@ -23,8 +23,8 @@ pub struct CreateWorkspaceParams {
|
||||
#[pb(index = 2)]
|
||||
pub desc: String,
|
||||
|
||||
#[pb(index = 3, one_of)]
|
||||
pub user_id: Option<String>,
|
||||
#[pb(index = 3)]
|
||||
pub user_id: String,
|
||||
}
|
||||
|
||||
impl TryInto<CreateWorkspaceParams> for CreateWorkspaceRequest {
|
||||
@ -32,15 +32,21 @@ impl TryInto<CreateWorkspaceParams> for CreateWorkspaceRequest {
|
||||
|
||||
fn try_into(self) -> Result<CreateWorkspaceParams, Self::Error> {
|
||||
let name = WorkspaceName::parse(self.name).map_err(|e| {
|
||||
ErrorBuilder::new(WsErrCode::WorkspaceNameInvalid)
|
||||
ErrorBuilder::new(WsErrCode::WorkspaceDescInvalid)
|
||||
.msg(e)
|
||||
.build()
|
||||
})?;
|
||||
|
||||
let desc = WorkspaceDesc::parse(self.desc).map_err(|e| {
|
||||
ErrorBuilder::new(WsErrCode::WorkspaceDescInvalid)
|
||||
.msg(e)
|
||||
.build()
|
||||
})?;
|
||||
|
||||
Ok(CreateWorkspaceParams {
|
||||
name: name.0,
|
||||
desc: self.desc,
|
||||
user_id: None,
|
||||
desc: desc.0,
|
||||
user_id: "".to_string(),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ pub struct DeleteWorkspaceRequest {
|
||||
#[derive(ProtoBuf, Default)]
|
||||
pub struct DeleteWorkspaceParams {
|
||||
#[pb(index = 1)]
|
||||
workspace_id: String,
|
||||
pub workspace_id: String,
|
||||
}
|
||||
|
||||
impl TryInto<DeleteWorkspaceParams> for DeleteWorkspaceRequest {
|
||||
|
@ -2,6 +2,7 @@ use bytes::Bytes;
|
||||
use derive_more::Display;
|
||||
use flowy_derive::{ProtoBuf, ProtoBuf_Enum};
|
||||
use flowy_dispatch::prelude::{EventResponse, ResponseBuilder};
|
||||
use flowy_net::errors::ErrorCode;
|
||||
use std::convert::TryInto;
|
||||
|
||||
#[derive(Debug, Default, Clone, ProtoBuf)]
|
||||
@ -36,6 +37,9 @@ pub enum WsErrCode {
|
||||
#[display(fmt = "Color style of the App is invalid")]
|
||||
AppColorStyleInvalid = 3,
|
||||
|
||||
#[display(fmt = "Workspace desc is invalid")]
|
||||
WorkspaceDescInvalid = 4,
|
||||
|
||||
#[display(fmt = "Id of the App is invalid")]
|
||||
AppIdInvalid = 10,
|
||||
|
||||
@ -68,6 +72,8 @@ pub enum WsErrCode {
|
||||
|
||||
#[display(fmt = "Server error")]
|
||||
ServerError = 1000,
|
||||
#[display(fmt = "Record not found")]
|
||||
RecordNotFound = 1001,
|
||||
}
|
||||
|
||||
impl std::default::Default for WsErrCode {
|
||||
@ -76,9 +82,15 @@ impl std::default::Default for WsErrCode {
|
||||
|
||||
impl std::convert::From<flowy_net::errors::ServerError> for WorkspaceError {
|
||||
fn from(error: flowy_net::errors::ServerError) -> Self {
|
||||
ErrorBuilder::new(WsErrCode::ServerError)
|
||||
match error.code {
|
||||
ErrorCode::RecordNotFound => ErrorBuilder::new(WsErrCode::RecordNotFound)
|
||||
.error(error.msg)
|
||||
.build()
|
||||
.build(),
|
||||
|
||||
_ => ErrorBuilder::new(WsErrCode::ServerError)
|
||||
.error(error.msg)
|
||||
.build(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -482,6 +482,348 @@ impl ::protobuf::reflect::ProtobufValue for ColorStyle {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq,Clone,Default)]
|
||||
pub struct CreateAppParams {
|
||||
// message fields
|
||||
pub workspace_id: ::std::string::String,
|
||||
pub name: ::std::string::String,
|
||||
pub desc: ::std::string::String,
|
||||
pub color_style: ::protobuf::SingularPtrField<ColorStyle>,
|
||||
pub user_id: ::std::string::String,
|
||||
// special fields
|
||||
pub unknown_fields: ::protobuf::UnknownFields,
|
||||
pub cached_size: ::protobuf::CachedSize,
|
||||
}
|
||||
|
||||
impl<'a> ::std::default::Default for &'a CreateAppParams {
|
||||
fn default() -> &'a CreateAppParams {
|
||||
<CreateAppParams as ::protobuf::Message>::default_instance()
|
||||
}
|
||||
}
|
||||
|
||||
impl CreateAppParams {
|
||||
pub fn new() -> CreateAppParams {
|
||||
::std::default::Default::default()
|
||||
}
|
||||
|
||||
// string workspace_id = 1;
|
||||
|
||||
|
||||
pub fn get_workspace_id(&self) -> &str {
|
||||
&self.workspace_id
|
||||
}
|
||||
pub fn clear_workspace_id(&mut self) {
|
||||
self.workspace_id.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_workspace_id(&mut self, v: ::std::string::String) {
|
||||
self.workspace_id = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_workspace_id(&mut self) -> &mut ::std::string::String {
|
||||
&mut self.workspace_id
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_workspace_id(&mut self) -> ::std::string::String {
|
||||
::std::mem::replace(&mut self.workspace_id, ::std::string::String::new())
|
||||
}
|
||||
|
||||
// string name = 2;
|
||||
|
||||
|
||||
pub fn get_name(&self) -> &str {
|
||||
&self.name
|
||||
}
|
||||
pub fn clear_name(&mut self) {
|
||||
self.name.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_name(&mut self, v: ::std::string::String) {
|
||||
self.name = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_name(&mut self) -> &mut ::std::string::String {
|
||||
&mut self.name
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_name(&mut self) -> ::std::string::String {
|
||||
::std::mem::replace(&mut self.name, ::std::string::String::new())
|
||||
}
|
||||
|
||||
// string desc = 3;
|
||||
|
||||
|
||||
pub fn get_desc(&self) -> &str {
|
||||
&self.desc
|
||||
}
|
||||
pub fn clear_desc(&mut self) {
|
||||
self.desc.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_desc(&mut self, v: ::std::string::String) {
|
||||
self.desc = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_desc(&mut self) -> &mut ::std::string::String {
|
||||
&mut self.desc
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_desc(&mut self) -> ::std::string::String {
|
||||
::std::mem::replace(&mut self.desc, ::std::string::String::new())
|
||||
}
|
||||
|
||||
// .ColorStyle color_style = 4;
|
||||
|
||||
|
||||
pub fn get_color_style(&self) -> &ColorStyle {
|
||||
self.color_style.as_ref().unwrap_or_else(|| <ColorStyle as ::protobuf::Message>::default_instance())
|
||||
}
|
||||
pub fn clear_color_style(&mut self) {
|
||||
self.color_style.clear();
|
||||
}
|
||||
|
||||
pub fn has_color_style(&self) -> bool {
|
||||
self.color_style.is_some()
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_color_style(&mut self, v: ColorStyle) {
|
||||
self.color_style = ::protobuf::SingularPtrField::some(v);
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_color_style(&mut self) -> &mut ColorStyle {
|
||||
if self.color_style.is_none() {
|
||||
self.color_style.set_default();
|
||||
}
|
||||
self.color_style.as_mut().unwrap()
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_color_style(&mut self) -> ColorStyle {
|
||||
self.color_style.take().unwrap_or_else(|| ColorStyle::new())
|
||||
}
|
||||
|
||||
// string user_id = 5;
|
||||
|
||||
|
||||
pub fn get_user_id(&self) -> &str {
|
||||
&self.user_id
|
||||
}
|
||||
pub fn clear_user_id(&mut self) {
|
||||
self.user_id.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_user_id(&mut self, v: ::std::string::String) {
|
||||
self.user_id = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_user_id(&mut self) -> &mut ::std::string::String {
|
||||
&mut self.user_id
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_user_id(&mut self) -> ::std::string::String {
|
||||
::std::mem::replace(&mut self.user_id, ::std::string::String::new())
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Message for CreateAppParams {
|
||||
fn is_initialized(&self) -> bool {
|
||||
for v in &self.color_style {
|
||||
if !v.is_initialized() {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
true
|
||||
}
|
||||
|
||||
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
while !is.eof()? {
|
||||
let (field_number, wire_type) = is.read_tag_unpack()?;
|
||||
match field_number {
|
||||
1 => {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.workspace_id)?;
|
||||
},
|
||||
2 => {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
|
||||
},
|
||||
3 => {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.desc)?;
|
||||
},
|
||||
4 => {
|
||||
::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.color_style)?;
|
||||
},
|
||||
5 => {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.user_id)?;
|
||||
},
|
||||
_ => {
|
||||
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
|
||||
},
|
||||
};
|
||||
}
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
// Compute sizes of nested messages
|
||||
#[allow(unused_variables)]
|
||||
fn compute_size(&self) -> u32 {
|
||||
let mut my_size = 0;
|
||||
if !self.workspace_id.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(1, &self.workspace_id);
|
||||
}
|
||||
if !self.name.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(2, &self.name);
|
||||
}
|
||||
if !self.desc.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(3, &self.desc);
|
||||
}
|
||||
if let Some(ref v) = self.color_style.as_ref() {
|
||||
let len = v.compute_size();
|
||||
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
|
||||
}
|
||||
if !self.user_id.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(5, &self.user_id);
|
||||
}
|
||||
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
|
||||
self.cached_size.set(my_size);
|
||||
my_size
|
||||
}
|
||||
|
||||
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
if !self.workspace_id.is_empty() {
|
||||
os.write_string(1, &self.workspace_id)?;
|
||||
}
|
||||
if !self.name.is_empty() {
|
||||
os.write_string(2, &self.name)?;
|
||||
}
|
||||
if !self.desc.is_empty() {
|
||||
os.write_string(3, &self.desc)?;
|
||||
}
|
||||
if let Some(ref v) = self.color_style.as_ref() {
|
||||
os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
|
||||
os.write_raw_varint32(v.get_cached_size())?;
|
||||
v.write_to_with_cached_sizes(os)?;
|
||||
}
|
||||
if !self.user_id.is_empty() {
|
||||
os.write_string(5, &self.user_id)?;
|
||||
}
|
||||
os.write_unknown_fields(self.get_unknown_fields())?;
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
fn get_cached_size(&self) -> u32 {
|
||||
self.cached_size.get()
|
||||
}
|
||||
|
||||
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
|
||||
&self.unknown_fields
|
||||
}
|
||||
|
||||
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
|
||||
&mut self.unknown_fields
|
||||
}
|
||||
|
||||
fn as_any(&self) -> &dyn (::std::any::Any) {
|
||||
self as &dyn (::std::any::Any)
|
||||
}
|
||||
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
|
||||
self as &mut dyn (::std::any::Any)
|
||||
}
|
||||
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
|
||||
self
|
||||
}
|
||||
|
||||
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
Self::descriptor_static()
|
||||
}
|
||||
|
||||
fn new() -> CreateAppParams {
|
||||
CreateAppParams::new()
|
||||
}
|
||||
|
||||
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
|
||||
descriptor.get(|| {
|
||||
let mut fields = ::std::vec::Vec::new();
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"workspace_id",
|
||||
|m: &CreateAppParams| { &m.workspace_id },
|
||||
|m: &mut CreateAppParams| { &mut m.workspace_id },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"name",
|
||||
|m: &CreateAppParams| { &m.name },
|
||||
|m: &mut CreateAppParams| { &mut m.name },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"desc",
|
||||
|m: &CreateAppParams| { &m.desc },
|
||||
|m: &mut CreateAppParams| { &mut m.desc },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<ColorStyle>>(
|
||||
"color_style",
|
||||
|m: &CreateAppParams| { &m.color_style },
|
||||
|m: &mut CreateAppParams| { &mut m.color_style },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"user_id",
|
||||
|m: &CreateAppParams| { &m.user_id },
|
||||
|m: &mut CreateAppParams| { &mut m.user_id },
|
||||
));
|
||||
::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateAppParams>(
|
||||
"CreateAppParams",
|
||||
fields,
|
||||
file_descriptor_proto()
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
fn default_instance() -> &'static CreateAppParams {
|
||||
static instance: ::protobuf::rt::LazyV2<CreateAppParams> = ::protobuf::rt::LazyV2::INIT;
|
||||
instance.get(CreateAppParams::new)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Clear for CreateAppParams {
|
||||
fn clear(&mut self) {
|
||||
self.workspace_id.clear();
|
||||
self.name.clear();
|
||||
self.desc.clear();
|
||||
self.color_style.clear();
|
||||
self.user_id.clear();
|
||||
self.unknown_fields.clear();
|
||||
}
|
||||
}
|
||||
|
||||
impl ::std::fmt::Debug for CreateAppParams {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
||||
::protobuf::text_format::fmt(self, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::reflect::ProtobufValue for CreateAppParams {
|
||||
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
|
||||
::protobuf::reflect::ReflectValueRef::Message(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq,Clone,Default)]
|
||||
pub struct App {
|
||||
// message fields
|
||||
@ -1031,52 +1373,72 @@ static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x12\n\x04desc\x18\x03\x20\
|
||||
\x01(\tR\x04desc\x12,\n\x0bcolor_style\x18\x04\x20\x01(\x0b2\x0b.ColorSt\
|
||||
yleR\ncolorStyle\"-\n\nColorStyle\x12\x1f\n\x0btheme_color\x18\x01\x20\
|
||||
\x01(\tR\nthemeColor\"\xa9\x01\n\x03App\x12\x0e\n\x02id\x18\x01\x20\x01(\
|
||||
\tR\x02id\x12!\n\x0cworkspace_id\x18\x02\x20\x01(\tR\x0bworkspaceId\x12\
|
||||
\x12\n\x04name\x18\x03\x20\x01(\tR\x04name\x12\x12\n\x04desc\x18\x04\x20\
|
||||
\x01(\tR\x04desc\x12-\n\nbelongings\x18\x05\x20\x01(\x0b2\r.RepeatedView\
|
||||
R\nbelongings\x12\x18\n\x07version\x18\x06\x20\x01(\x03R\x07version\")\n\
|
||||
\x0bRepeatedApp\x12\x1a\n\x05items\x18\x01\x20\x03(\x0b2\x04.AppR\x05ite\
|
||||
msJ\x9f\x06\n\x06\x12\x04\0\0\x16\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\
|
||||
\t\n\x02\x03\0\x12\x03\x01\0\x1b\n\n\n\x02\x04\0\x12\x04\x03\0\x08\x01\n\
|
||||
\n\n\x03\x04\0\x01\x12\x03\x03\x08\x18\n\x0b\n\x04\x04\0\x02\0\x12\x03\
|
||||
\x04\x04\x1c\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x04\x04\n\n\x0c\n\x05\
|
||||
\x04\0\x02\0\x01\x12\x03\x04\x0b\x17\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\
|
||||
\x04\x1a\x1b\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x05\x04\x14\n\x0c\n\x05\
|
||||
\x04\0\x02\x01\x05\x12\x03\x05\x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\x12\
|
||||
\x03\x05\x0b\x0f\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x05\x12\x13\n\x0b\
|
||||
\n\x04\x04\0\x02\x02\x12\x03\x06\x04\x14\n\x0c\n\x05\x04\0\x02\x02\x05\
|
||||
\x12\x03\x06\x04\n\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x06\x0b\x0f\n\
|
||||
\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x06\x12\x13\n\x0b\n\x04\x04\0\x02\
|
||||
\x03\x12\x03\x07\x04\x1f\n\x0c\n\x05\x04\0\x02\x03\x06\x12\x03\x07\x04\
|
||||
\x0e\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x07\x0f\x1a\n\x0c\n\x05\x04\0\
|
||||
\x02\x03\x03\x12\x03\x07\x1d\x1e\n\n\n\x02\x04\x01\x12\x04\t\0\x0b\x01\n\
|
||||
\n\n\x03\x04\x01\x01\x12\x03\t\x08\x12\n\x0b\n\x04\x04\x01\x02\0\x12\x03\
|
||||
\n\x04\x1b\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03\n\x04\n\n\x0c\n\x05\x04\
|
||||
\x01\x02\0\x01\x12\x03\n\x0b\x16\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\n\
|
||||
\x19\x1a\n\n\n\x02\x04\x02\x12\x04\x0c\0\x13\x01\n\n\n\x03\x04\x02\x01\
|
||||
\x12\x03\x0c\x08\x0b\n\x0b\n\x04\x04\x02\x02\0\x12\x03\r\x04\x12\n\x0c\n\
|
||||
\x05\x04\x02\x02\0\x05\x12\x03\r\x04\n\n\x0c\n\x05\x04\x02\x02\0\x01\x12\
|
||||
\x03\r\x0b\r\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03\r\x10\x11\n\x0b\n\x04\
|
||||
\x04\x02\x02\x01\x12\x03\x0e\x04\x1c\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\
|
||||
\x03\x0e\x04\n\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x0e\x0b\x17\n\x0c\
|
||||
\n\x05\x04\x02\x02\x01\x03\x12\x03\x0e\x1a\x1b\n\x0b\n\x04\x04\x02\x02\
|
||||
\x02\x12\x03\x0f\x04\x14\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03\x0f\x04\
|
||||
\n\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03\x0f\x0b\x0f\n\x0c\n\x05\x04\
|
||||
\x02\x02\x02\x03\x12\x03\x0f\x12\x13\n\x0b\n\x04\x04\x02\x02\x03\x12\x03\
|
||||
\x10\x04\x14\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03\x10\x04\n\n\x0c\n\
|
||||
\x05\x04\x02\x02\x03\x01\x12\x03\x10\x0b\x0f\n\x0c\n\x05\x04\x02\x02\x03\
|
||||
\x03\x12\x03\x10\x12\x13\n\x0b\n\x04\x04\x02\x02\x04\x12\x03\x11\x04\x20\
|
||||
\n\x0c\n\x05\x04\x02\x02\x04\x06\x12\x03\x11\x04\x10\n\x0c\n\x05\x04\x02\
|
||||
\x02\x04\x01\x12\x03\x11\x11\x1b\n\x0c\n\x05\x04\x02\x02\x04\x03\x12\x03\
|
||||
\x11\x1e\x1f\n\x0b\n\x04\x04\x02\x02\x05\x12\x03\x12\x04\x16\n\x0c\n\x05\
|
||||
\x04\x02\x02\x05\x05\x12\x03\x12\x04\t\n\x0c\n\x05\x04\x02\x02\x05\x01\
|
||||
\x12\x03\x12\n\x11\n\x0c\n\x05\x04\x02\x02\x05\x03\x12\x03\x12\x14\x15\n\
|
||||
\n\n\x02\x04\x03\x12\x04\x14\0\x16\x01\n\n\n\x03\x04\x03\x01\x12\x03\x14\
|
||||
\x08\x13\n\x0b\n\x04\x04\x03\x02\0\x12\x03\x15\x04\x1b\n\x0c\n\x05\x04\
|
||||
\x03\x02\0\x04\x12\x03\x15\x04\x0c\n\x0c\n\x05\x04\x03\x02\0\x06\x12\x03\
|
||||
\x15\r\x10\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03\x15\x11\x16\n\x0c\n\x05\
|
||||
\x04\x03\x02\0\x03\x12\x03\x15\x19\x1ab\x06proto3\
|
||||
\x01(\tR\nthemeColor\"\xa3\x01\n\x0fCreateAppParams\x12!\n\x0cworkspace_\
|
||||
id\x18\x01\x20\x01(\tR\x0bworkspaceId\x12\x12\n\x04name\x18\x02\x20\x01(\
|
||||
\tR\x04name\x12\x12\n\x04desc\x18\x03\x20\x01(\tR\x04desc\x12,\n\x0bcolo\
|
||||
r_style\x18\x04\x20\x01(\x0b2\x0b.ColorStyleR\ncolorStyle\x12\x17\n\x07u\
|
||||
ser_id\x18\x05\x20\x01(\tR\x06userId\"\xa9\x01\n\x03App\x12\x0e\n\x02id\
|
||||
\x18\x01\x20\x01(\tR\x02id\x12!\n\x0cworkspace_id\x18\x02\x20\x01(\tR\
|
||||
\x0bworkspaceId\x12\x12\n\x04name\x18\x03\x20\x01(\tR\x04name\x12\x12\n\
|
||||
\x04desc\x18\x04\x20\x01(\tR\x04desc\x12-\n\nbelongings\x18\x05\x20\x01(\
|
||||
\x0b2\r.RepeatedViewR\nbelongings\x12\x18\n\x07version\x18\x06\x20\x01(\
|
||||
\x03R\x07version\")\n\x0bRepeatedApp\x12\x1a\n\x05items\x18\x01\x20\x03(\
|
||||
\x0b2\x04.AppR\x05itemsJ\xca\x08\n\x06\x12\x04\0\0\x1d\x01\n\x08\n\x01\
|
||||
\x0c\x12\x03\0\0\x12\n\t\n\x02\x03\0\x12\x03\x01\0\x1b\n\n\n\x02\x04\0\
|
||||
\x12\x04\x03\0\x08\x01\n\n\n\x03\x04\0\x01\x12\x03\x03\x08\x18\n\x0b\n\
|
||||
\x04\x04\0\x02\0\x12\x03\x04\x04\x1c\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\
|
||||
\x04\x04\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x04\x0b\x17\n\x0c\n\x05\
|
||||
\x04\0\x02\0\x03\x12\x03\x04\x1a\x1b\n\x0b\n\x04\x04\0\x02\x01\x12\x03\
|
||||
\x05\x04\x14\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x05\x04\n\n\x0c\n\x05\
|
||||
\x04\0\x02\x01\x01\x12\x03\x05\x0b\x0f\n\x0c\n\x05\x04\0\x02\x01\x03\x12\
|
||||
\x03\x05\x12\x13\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x06\x04\x14\n\x0c\n\
|
||||
\x05\x04\0\x02\x02\x05\x12\x03\x06\x04\n\n\x0c\n\x05\x04\0\x02\x02\x01\
|
||||
\x12\x03\x06\x0b\x0f\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x06\x12\x13\n\
|
||||
\x0b\n\x04\x04\0\x02\x03\x12\x03\x07\x04\x1f\n\x0c\n\x05\x04\0\x02\x03\
|
||||
\x06\x12\x03\x07\x04\x0e\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x07\x0f\
|
||||
\x1a\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x07\x1d\x1e\n\n\n\x02\x04\x01\
|
||||
\x12\x04\t\0\x0b\x01\n\n\n\x03\x04\x01\x01\x12\x03\t\x08\x12\n\x0b\n\x04\
|
||||
\x04\x01\x02\0\x12\x03\n\x04\x1b\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03\n\
|
||||
\x04\n\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\n\x0b\x16\n\x0c\n\x05\x04\
|
||||
\x01\x02\0\x03\x12\x03\n\x19\x1a\n\n\n\x02\x04\x02\x12\x04\x0c\0\x12\x01\
|
||||
\n\n\n\x03\x04\x02\x01\x12\x03\x0c\x08\x17\n\x0b\n\x04\x04\x02\x02\0\x12\
|
||||
\x03\r\x04\x1c\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03\r\x04\n\n\x0c\n\x05\
|
||||
\x04\x02\x02\0\x01\x12\x03\r\x0b\x17\n\x0c\n\x05\x04\x02\x02\0\x03\x12\
|
||||
\x03\r\x1a\x1b\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\x0e\x04\x14\n\x0c\n\
|
||||
\x05\x04\x02\x02\x01\x05\x12\x03\x0e\x04\n\n\x0c\n\x05\x04\x02\x02\x01\
|
||||
\x01\x12\x03\x0e\x0b\x0f\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\x0e\x12\
|
||||
\x13\n\x0b\n\x04\x04\x02\x02\x02\x12\x03\x0f\x04\x14\n\x0c\n\x05\x04\x02\
|
||||
\x02\x02\x05\x12\x03\x0f\x04\n\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03\
|
||||
\x0f\x0b\x0f\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03\x0f\x12\x13\n\x0b\n\
|
||||
\x04\x04\x02\x02\x03\x12\x03\x10\x04\x1f\n\x0c\n\x05\x04\x02\x02\x03\x06\
|
||||
\x12\x03\x10\x04\x0e\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03\x10\x0f\x1a\
|
||||
\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03\x10\x1d\x1e\n\x0b\n\x04\x04\x02\
|
||||
\x02\x04\x12\x03\x11\x04\x17\n\x0c\n\x05\x04\x02\x02\x04\x05\x12\x03\x11\
|
||||
\x04\n\n\x0c\n\x05\x04\x02\x02\x04\x01\x12\x03\x11\x0b\x12\n\x0c\n\x05\
|
||||
\x04\x02\x02\x04\x03\x12\x03\x11\x15\x16\n\n\n\x02\x04\x03\x12\x04\x13\0\
|
||||
\x1a\x01\n\n\n\x03\x04\x03\x01\x12\x03\x13\x08\x0b\n\x0b\n\x04\x04\x03\
|
||||
\x02\0\x12\x03\x14\x04\x12\n\x0c\n\x05\x04\x03\x02\0\x05\x12\x03\x14\x04\
|
||||
\n\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03\x14\x0b\r\n\x0c\n\x05\x04\x03\
|
||||
\x02\0\x03\x12\x03\x14\x10\x11\n\x0b\n\x04\x04\x03\x02\x01\x12\x03\x15\
|
||||
\x04\x1c\n\x0c\n\x05\x04\x03\x02\x01\x05\x12\x03\x15\x04\n\n\x0c\n\x05\
|
||||
\x04\x03\x02\x01\x01\x12\x03\x15\x0b\x17\n\x0c\n\x05\x04\x03\x02\x01\x03\
|
||||
\x12\x03\x15\x1a\x1b\n\x0b\n\x04\x04\x03\x02\x02\x12\x03\x16\x04\x14\n\
|
||||
\x0c\n\x05\x04\x03\x02\x02\x05\x12\x03\x16\x04\n\n\x0c\n\x05\x04\x03\x02\
|
||||
\x02\x01\x12\x03\x16\x0b\x0f\n\x0c\n\x05\x04\x03\x02\x02\x03\x12\x03\x16\
|
||||
\x12\x13\n\x0b\n\x04\x04\x03\x02\x03\x12\x03\x17\x04\x14\n\x0c\n\x05\x04\
|
||||
\x03\x02\x03\x05\x12\x03\x17\x04\n\n\x0c\n\x05\x04\x03\x02\x03\x01\x12\
|
||||
\x03\x17\x0b\x0f\n\x0c\n\x05\x04\x03\x02\x03\x03\x12\x03\x17\x12\x13\n\
|
||||
\x0b\n\x04\x04\x03\x02\x04\x12\x03\x18\x04\x20\n\x0c\n\x05\x04\x03\x02\
|
||||
\x04\x06\x12\x03\x18\x04\x10\n\x0c\n\x05\x04\x03\x02\x04\x01\x12\x03\x18\
|
||||
\x11\x1b\n\x0c\n\x05\x04\x03\x02\x04\x03\x12\x03\x18\x1e\x1f\n\x0b\n\x04\
|
||||
\x04\x03\x02\x05\x12\x03\x19\x04\x16\n\x0c\n\x05\x04\x03\x02\x05\x05\x12\
|
||||
\x03\x19\x04\t\n\x0c\n\x05\x04\x03\x02\x05\x01\x12\x03\x19\n\x11\n\x0c\n\
|
||||
\x05\x04\x03\x02\x05\x03\x12\x03\x19\x14\x15\n\n\n\x02\x04\x04\x12\x04\
|
||||
\x1b\0\x1d\x01\n\n\n\x03\x04\x04\x01\x12\x03\x1b\x08\x13\n\x0b\n\x04\x04\
|
||||
\x04\x02\0\x12\x03\x1c\x04\x1b\n\x0c\n\x05\x04\x04\x02\0\x04\x12\x03\x1c\
|
||||
\x04\x0c\n\x0c\n\x05\x04\x04\x02\0\x06\x12\x03\x1c\r\x10\n\x0c\n\x05\x04\
|
||||
\x04\x02\0\x01\x12\x03\x1c\x11\x16\n\x0c\n\x05\x04\x04\x02\0\x03\x12\x03\
|
||||
\x1c\x19\x1ab\x06proto3\
|
||||
";
|
||||
|
||||
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|
||||
|
@ -182,13 +182,177 @@ impl ::protobuf::reflect::ProtobufValue for DeleteAppRequest {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq,Clone,Default)]
|
||||
pub struct DeleteAppParams {
|
||||
// message fields
|
||||
pub app_id: ::std::string::String,
|
||||
// special fields
|
||||
pub unknown_fields: ::protobuf::UnknownFields,
|
||||
pub cached_size: ::protobuf::CachedSize,
|
||||
}
|
||||
|
||||
impl<'a> ::std::default::Default for &'a DeleteAppParams {
|
||||
fn default() -> &'a DeleteAppParams {
|
||||
<DeleteAppParams as ::protobuf::Message>::default_instance()
|
||||
}
|
||||
}
|
||||
|
||||
impl DeleteAppParams {
|
||||
pub fn new() -> DeleteAppParams {
|
||||
::std::default::Default::default()
|
||||
}
|
||||
|
||||
// string app_id = 1;
|
||||
|
||||
|
||||
pub fn get_app_id(&self) -> &str {
|
||||
&self.app_id
|
||||
}
|
||||
pub fn clear_app_id(&mut self) {
|
||||
self.app_id.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_app_id(&mut self, v: ::std::string::String) {
|
||||
self.app_id = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_app_id(&mut self) -> &mut ::std::string::String {
|
||||
&mut self.app_id
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_app_id(&mut self) -> ::std::string::String {
|
||||
::std::mem::replace(&mut self.app_id, ::std::string::String::new())
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Message for DeleteAppParams {
|
||||
fn is_initialized(&self) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
while !is.eof()? {
|
||||
let (field_number, wire_type) = is.read_tag_unpack()?;
|
||||
match field_number {
|
||||
1 => {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.app_id)?;
|
||||
},
|
||||
_ => {
|
||||
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
|
||||
},
|
||||
};
|
||||
}
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
// Compute sizes of nested messages
|
||||
#[allow(unused_variables)]
|
||||
fn compute_size(&self) -> u32 {
|
||||
let mut my_size = 0;
|
||||
if !self.app_id.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(1, &self.app_id);
|
||||
}
|
||||
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
|
||||
self.cached_size.set(my_size);
|
||||
my_size
|
||||
}
|
||||
|
||||
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
if !self.app_id.is_empty() {
|
||||
os.write_string(1, &self.app_id)?;
|
||||
}
|
||||
os.write_unknown_fields(self.get_unknown_fields())?;
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
fn get_cached_size(&self) -> u32 {
|
||||
self.cached_size.get()
|
||||
}
|
||||
|
||||
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
|
||||
&self.unknown_fields
|
||||
}
|
||||
|
||||
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
|
||||
&mut self.unknown_fields
|
||||
}
|
||||
|
||||
fn as_any(&self) -> &dyn (::std::any::Any) {
|
||||
self as &dyn (::std::any::Any)
|
||||
}
|
||||
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
|
||||
self as &mut dyn (::std::any::Any)
|
||||
}
|
||||
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
|
||||
self
|
||||
}
|
||||
|
||||
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
Self::descriptor_static()
|
||||
}
|
||||
|
||||
fn new() -> DeleteAppParams {
|
||||
DeleteAppParams::new()
|
||||
}
|
||||
|
||||
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
|
||||
descriptor.get(|| {
|
||||
let mut fields = ::std::vec::Vec::new();
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"app_id",
|
||||
|m: &DeleteAppParams| { &m.app_id },
|
||||
|m: &mut DeleteAppParams| { &mut m.app_id },
|
||||
));
|
||||
::protobuf::reflect::MessageDescriptor::new_pb_name::<DeleteAppParams>(
|
||||
"DeleteAppParams",
|
||||
fields,
|
||||
file_descriptor_proto()
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
fn default_instance() -> &'static DeleteAppParams {
|
||||
static instance: ::protobuf::rt::LazyV2<DeleteAppParams> = ::protobuf::rt::LazyV2::INIT;
|
||||
instance.get(DeleteAppParams::new)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Clear for DeleteAppParams {
|
||||
fn clear(&mut self) {
|
||||
self.app_id.clear();
|
||||
self.unknown_fields.clear();
|
||||
}
|
||||
}
|
||||
|
||||
impl ::std::fmt::Debug for DeleteAppParams {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
||||
::protobuf::text_format::fmt(self, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::reflect::ProtobufValue for DeleteAppParams {
|
||||
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
|
||||
::protobuf::reflect::ReflectValueRef::Message(self)
|
||||
}
|
||||
}
|
||||
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x10app_delete.proto\")\n\x10DeleteAppRequest\x12\x15\n\x06app_id\x18\
|
||||
\x01\x20\x01(\tR\x05appIdJa\n\x06\x12\x04\0\0\x04\x01\n\x08\n\x01\x0c\
|
||||
\x12\x03\0\0\x12\n\n\n\x02\x04\0\x12\x04\x02\0\x04\x01\n\n\n\x03\x04\0\
|
||||
\x01\x12\x03\x02\x08\x18\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\x16\n\
|
||||
\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x03\x04\n\n\x0c\n\x05\x04\0\x02\0\x01\
|
||||
\x12\x03\x03\x0b\x11\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x14\x15b\
|
||||
\x01\x20\x01(\tR\x05appId\"(\n\x0fDeleteAppParams\x12\x15\n\x06app_id\
|
||||
\x18\x01\x20\x01(\tR\x05appIdJ\xb0\x01\n\x06\x12\x04\0\0\x07\x01\n\x08\n\
|
||||
\x01\x0c\x12\x03\0\0\x12\n\n\n\x02\x04\0\x12\x04\x02\0\x04\x01\n\n\n\x03\
|
||||
\x04\0\x01\x12\x03\x02\x08\x18\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\
|
||||
\x16\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x03\x04\n\n\x0c\n\x05\x04\0\x02\
|
||||
\0\x01\x12\x03\x03\x0b\x11\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x14\
|
||||
\x15\n\n\n\x02\x04\x01\x12\x04\x05\0\x07\x01\n\n\n\x03\x04\x01\x01\x12\
|
||||
\x03\x05\x08\x17\n\x0b\n\x04\x04\x01\x02\0\x12\x03\x06\x04\x16\n\x0c\n\
|
||||
\x05\x04\x01\x02\0\x05\x12\x03\x06\x04\n\n\x0c\n\x05\x04\x01\x02\0\x01\
|
||||
\x12\x03\x06\x0b\x11\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x06\x14\x15b\
|
||||
\x06proto3\
|
||||
";
|
||||
|
||||
|
@ -252,21 +252,262 @@ impl ::protobuf::reflect::ProtobufValue for QueryAppRequest {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq,Clone,Default)]
|
||||
pub struct QueryAppParams {
|
||||
// message fields
|
||||
pub app_id: ::std::string::String,
|
||||
pub read_belongings: bool,
|
||||
pub is_trash: bool,
|
||||
// special fields
|
||||
pub unknown_fields: ::protobuf::UnknownFields,
|
||||
pub cached_size: ::protobuf::CachedSize,
|
||||
}
|
||||
|
||||
impl<'a> ::std::default::Default for &'a QueryAppParams {
|
||||
fn default() -> &'a QueryAppParams {
|
||||
<QueryAppParams as ::protobuf::Message>::default_instance()
|
||||
}
|
||||
}
|
||||
|
||||
impl QueryAppParams {
|
||||
pub fn new() -> QueryAppParams {
|
||||
::std::default::Default::default()
|
||||
}
|
||||
|
||||
// string app_id = 1;
|
||||
|
||||
|
||||
pub fn get_app_id(&self) -> &str {
|
||||
&self.app_id
|
||||
}
|
||||
pub fn clear_app_id(&mut self) {
|
||||
self.app_id.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_app_id(&mut self, v: ::std::string::String) {
|
||||
self.app_id = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_app_id(&mut self) -> &mut ::std::string::String {
|
||||
&mut self.app_id
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_app_id(&mut self) -> ::std::string::String {
|
||||
::std::mem::replace(&mut self.app_id, ::std::string::String::new())
|
||||
}
|
||||
|
||||
// bool read_belongings = 2;
|
||||
|
||||
|
||||
pub fn get_read_belongings(&self) -> bool {
|
||||
self.read_belongings
|
||||
}
|
||||
pub fn clear_read_belongings(&mut self) {
|
||||
self.read_belongings = false;
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_read_belongings(&mut self, v: bool) {
|
||||
self.read_belongings = v;
|
||||
}
|
||||
|
||||
// bool is_trash = 3;
|
||||
|
||||
|
||||
pub fn get_is_trash(&self) -> bool {
|
||||
self.is_trash
|
||||
}
|
||||
pub fn clear_is_trash(&mut self) {
|
||||
self.is_trash = false;
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_is_trash(&mut self, v: bool) {
|
||||
self.is_trash = v;
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Message for QueryAppParams {
|
||||
fn is_initialized(&self) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
while !is.eof()? {
|
||||
let (field_number, wire_type) = is.read_tag_unpack()?;
|
||||
match field_number {
|
||||
1 => {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.app_id)?;
|
||||
},
|
||||
2 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeVarint {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
let tmp = is.read_bool()?;
|
||||
self.read_belongings = tmp;
|
||||
},
|
||||
3 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeVarint {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
let tmp = is.read_bool()?;
|
||||
self.is_trash = tmp;
|
||||
},
|
||||
_ => {
|
||||
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
|
||||
},
|
||||
};
|
||||
}
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
// Compute sizes of nested messages
|
||||
#[allow(unused_variables)]
|
||||
fn compute_size(&self) -> u32 {
|
||||
let mut my_size = 0;
|
||||
if !self.app_id.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(1, &self.app_id);
|
||||
}
|
||||
if self.read_belongings != false {
|
||||
my_size += 2;
|
||||
}
|
||||
if self.is_trash != false {
|
||||
my_size += 2;
|
||||
}
|
||||
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
|
||||
self.cached_size.set(my_size);
|
||||
my_size
|
||||
}
|
||||
|
||||
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
if !self.app_id.is_empty() {
|
||||
os.write_string(1, &self.app_id)?;
|
||||
}
|
||||
if self.read_belongings != false {
|
||||
os.write_bool(2, self.read_belongings)?;
|
||||
}
|
||||
if self.is_trash != false {
|
||||
os.write_bool(3, self.is_trash)?;
|
||||
}
|
||||
os.write_unknown_fields(self.get_unknown_fields())?;
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
fn get_cached_size(&self) -> u32 {
|
||||
self.cached_size.get()
|
||||
}
|
||||
|
||||
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
|
||||
&self.unknown_fields
|
||||
}
|
||||
|
||||
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
|
||||
&mut self.unknown_fields
|
||||
}
|
||||
|
||||
fn as_any(&self) -> &dyn (::std::any::Any) {
|
||||
self as &dyn (::std::any::Any)
|
||||
}
|
||||
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
|
||||
self as &mut dyn (::std::any::Any)
|
||||
}
|
||||
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
|
||||
self
|
||||
}
|
||||
|
||||
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
Self::descriptor_static()
|
||||
}
|
||||
|
||||
fn new() -> QueryAppParams {
|
||||
QueryAppParams::new()
|
||||
}
|
||||
|
||||
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
|
||||
descriptor.get(|| {
|
||||
let mut fields = ::std::vec::Vec::new();
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"app_id",
|
||||
|m: &QueryAppParams| { &m.app_id },
|
||||
|m: &mut QueryAppParams| { &mut m.app_id },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
|
||||
"read_belongings",
|
||||
|m: &QueryAppParams| { &m.read_belongings },
|
||||
|m: &mut QueryAppParams| { &mut m.read_belongings },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
|
||||
"is_trash",
|
||||
|m: &QueryAppParams| { &m.is_trash },
|
||||
|m: &mut QueryAppParams| { &mut m.is_trash },
|
||||
));
|
||||
::protobuf::reflect::MessageDescriptor::new_pb_name::<QueryAppParams>(
|
||||
"QueryAppParams",
|
||||
fields,
|
||||
file_descriptor_proto()
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
fn default_instance() -> &'static QueryAppParams {
|
||||
static instance: ::protobuf::rt::LazyV2<QueryAppParams> = ::protobuf::rt::LazyV2::INIT;
|
||||
instance.get(QueryAppParams::new)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Clear for QueryAppParams {
|
||||
fn clear(&mut self) {
|
||||
self.app_id.clear();
|
||||
self.read_belongings = false;
|
||||
self.is_trash = false;
|
||||
self.unknown_fields.clear();
|
||||
}
|
||||
}
|
||||
|
||||
impl ::std::fmt::Debug for QueryAppParams {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
||||
::protobuf::text_format::fmt(self, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::reflect::ProtobufValue for QueryAppParams {
|
||||
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
|
||||
::protobuf::reflect::ReflectValueRef::Message(self)
|
||||
}
|
||||
}
|
||||
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x0fapp_query.proto\"l\n\x0fQueryAppRequest\x12\x15\n\x06app_id\x18\
|
||||
\x01\x20\x01(\tR\x05appId\x12'\n\x0fread_belongings\x18\x02\x20\x01(\x08\
|
||||
R\x0ereadBelongings\x12\x19\n\x08is_trash\x18\x03\x20\x01(\x08R\x07isTra\
|
||||
shJ\xcf\x01\n\x06\x12\x04\0\0\x06\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\
|
||||
\n\n\x02\x04\0\x12\x04\x02\0\x06\x01\n\n\n\x03\x04\0\x01\x12\x03\x02\x08\
|
||||
\x17\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\x16\n\x0c\n\x05\x04\0\x02\0\
|
||||
\x05\x12\x03\x03\x04\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x03\x0b\x11\n\
|
||||
\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x14\x15\n\x0b\n\x04\x04\0\x02\x01\
|
||||
\x12\x03\x04\x04\x1d\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x04\x04\x08\n\
|
||||
\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x04\t\x18\n\x0c\n\x05\x04\0\x02\x01\
|
||||
\x03\x12\x03\x04\x1b\x1c\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x05\x04\x16\n\
|
||||
\x0c\n\x05\x04\0\x02\x02\x05\x12\x03\x05\x04\x08\n\x0c\n\x05\x04\0\x02\
|
||||
\x02\x01\x12\x03\x05\t\x11\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x05\x14\
|
||||
\x15b\x06proto3\
|
||||
sh\"k\n\x0eQueryAppParams\x12\x15\n\x06app_id\x18\x01\x20\x01(\tR\x05app\
|
||||
Id\x12'\n\x0fread_belongings\x18\x02\x20\x01(\x08R\x0ereadBelongings\x12\
|
||||
\x19\n\x08is_trash\x18\x03\x20\x01(\x08R\x07isTrashJ\x8c\x03\n\x06\x12\
|
||||
\x04\0\0\x0b\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\n\n\x02\x04\0\x12\x04\
|
||||
\x02\0\x06\x01\n\n\n\x03\x04\0\x01\x12\x03\x02\x08\x17\n\x0b\n\x04\x04\0\
|
||||
\x02\0\x12\x03\x03\x04\x16\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x03\x04\n\
|
||||
\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x03\x0b\x11\n\x0c\n\x05\x04\0\x02\0\
|
||||
\x03\x12\x03\x03\x14\x15\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x04\x04\x1d\n\
|
||||
\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x04\x04\x08\n\x0c\n\x05\x04\0\x02\
|
||||
\x01\x01\x12\x03\x04\t\x18\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x04\x1b\
|
||||
\x1c\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x05\x04\x16\n\x0c\n\x05\x04\0\x02\
|
||||
\x02\x05\x12\x03\x05\x04\x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x05\t\
|
||||
\x11\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x05\x14\x15\n\n\n\x02\x04\x01\
|
||||
\x12\x04\x07\0\x0b\x01\n\n\n\x03\x04\x01\x01\x12\x03\x07\x08\x16\n\x0b\n\
|
||||
\x04\x04\x01\x02\0\x12\x03\x08\x04\x16\n\x0c\n\x05\x04\x01\x02\0\x05\x12\
|
||||
\x03\x08\x04\n\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x08\x0b\x11\n\x0c\n\
|
||||
\x05\x04\x01\x02\0\x03\x12\x03\x08\x14\x15\n\x0b\n\x04\x04\x01\x02\x01\
|
||||
\x12\x03\t\x04\x1d\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\t\x04\x08\n\
|
||||
\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\t\t\x18\n\x0c\n\x05\x04\x01\x02\
|
||||
\x01\x03\x12\x03\t\x1b\x1c\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\n\x04\x16\
|
||||
\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\n\x04\x08\n\x0c\n\x05\x04\x01\
|
||||
\x02\x02\x01\x12\x03\n\t\x11\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\n\
|
||||
\x14\x15b\x06proto3\
|
||||
";
|
||||
|
||||
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|
||||
|
@ -572,6 +572,555 @@ impl ::protobuf::reflect::ProtobufValue for UpdateAppRequest {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq,Clone,Default)]
|
||||
pub struct UpdateAppParams {
|
||||
// message fields
|
||||
pub app_id: ::std::string::String,
|
||||
// message oneof groups
|
||||
pub one_of_workspace_id: ::std::option::Option<UpdateAppParams_oneof_one_of_workspace_id>,
|
||||
pub one_of_name: ::std::option::Option<UpdateAppParams_oneof_one_of_name>,
|
||||
pub one_of_desc: ::std::option::Option<UpdateAppParams_oneof_one_of_desc>,
|
||||
pub one_of_color_style: ::std::option::Option<UpdateAppParams_oneof_one_of_color_style>,
|
||||
pub one_of_is_trash: ::std::option::Option<UpdateAppParams_oneof_one_of_is_trash>,
|
||||
// special fields
|
||||
pub unknown_fields: ::protobuf::UnknownFields,
|
||||
pub cached_size: ::protobuf::CachedSize,
|
||||
}
|
||||
|
||||
impl<'a> ::std::default::Default for &'a UpdateAppParams {
|
||||
fn default() -> &'a UpdateAppParams {
|
||||
<UpdateAppParams as ::protobuf::Message>::default_instance()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone,PartialEq,Debug)]
|
||||
pub enum UpdateAppParams_oneof_one_of_workspace_id {
|
||||
workspace_id(::std::string::String),
|
||||
}
|
||||
|
||||
#[derive(Clone,PartialEq,Debug)]
|
||||
pub enum UpdateAppParams_oneof_one_of_name {
|
||||
name(::std::string::String),
|
||||
}
|
||||
|
||||
#[derive(Clone,PartialEq,Debug)]
|
||||
pub enum UpdateAppParams_oneof_one_of_desc {
|
||||
desc(::std::string::String),
|
||||
}
|
||||
|
||||
#[derive(Clone,PartialEq,Debug)]
|
||||
pub enum UpdateAppParams_oneof_one_of_color_style {
|
||||
color_style(super::app_create::ColorStyle),
|
||||
}
|
||||
|
||||
#[derive(Clone,PartialEq,Debug)]
|
||||
pub enum UpdateAppParams_oneof_one_of_is_trash {
|
||||
is_trash(bool),
|
||||
}
|
||||
|
||||
impl UpdateAppParams {
|
||||
pub fn new() -> UpdateAppParams {
|
||||
::std::default::Default::default()
|
||||
}
|
||||
|
||||
// string app_id = 1;
|
||||
|
||||
|
||||
pub fn get_app_id(&self) -> &str {
|
||||
&self.app_id
|
||||
}
|
||||
pub fn clear_app_id(&mut self) {
|
||||
self.app_id.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_app_id(&mut self, v: ::std::string::String) {
|
||||
self.app_id = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_app_id(&mut self) -> &mut ::std::string::String {
|
||||
&mut self.app_id
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_app_id(&mut self) -> ::std::string::String {
|
||||
::std::mem::replace(&mut self.app_id, ::std::string::String::new())
|
||||
}
|
||||
|
||||
// string workspace_id = 2;
|
||||
|
||||
|
||||
pub fn get_workspace_id(&self) -> &str {
|
||||
match self.one_of_workspace_id {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(ref v)) => v,
|
||||
_ => "",
|
||||
}
|
||||
}
|
||||
pub fn clear_workspace_id(&mut self) {
|
||||
self.one_of_workspace_id = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_workspace_id(&self) -> bool {
|
||||
match self.one_of_workspace_id {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(..)) => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_workspace_id(&mut self, v: ::std::string::String) {
|
||||
self.one_of_workspace_id = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(v))
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
pub fn mut_workspace_id(&mut self) -> &mut ::std::string::String {
|
||||
if let ::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(_)) = self.one_of_workspace_id {
|
||||
} else {
|
||||
self.one_of_workspace_id = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(::std::string::String::new()));
|
||||
}
|
||||
match self.one_of_workspace_id {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(ref mut v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_workspace_id(&mut self) -> ::std::string::String {
|
||||
if self.has_workspace_id() {
|
||||
match self.one_of_workspace_id.take() {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
} else {
|
||||
::std::string::String::new()
|
||||
}
|
||||
}
|
||||
|
||||
// string name = 3;
|
||||
|
||||
|
||||
pub fn get_name(&self) -> &str {
|
||||
match self.one_of_name {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(ref v)) => v,
|
||||
_ => "",
|
||||
}
|
||||
}
|
||||
pub fn clear_name(&mut self) {
|
||||
self.one_of_name = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_name(&self) -> bool {
|
||||
match self.one_of_name {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(..)) => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_name(&mut self, v: ::std::string::String) {
|
||||
self.one_of_name = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(v))
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
pub fn mut_name(&mut self) -> &mut ::std::string::String {
|
||||
if let ::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(_)) = self.one_of_name {
|
||||
} else {
|
||||
self.one_of_name = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(::std::string::String::new()));
|
||||
}
|
||||
match self.one_of_name {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(ref mut v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_name(&mut self) -> ::std::string::String {
|
||||
if self.has_name() {
|
||||
match self.one_of_name.take() {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
} else {
|
||||
::std::string::String::new()
|
||||
}
|
||||
}
|
||||
|
||||
// string desc = 4;
|
||||
|
||||
|
||||
pub fn get_desc(&self) -> &str {
|
||||
match self.one_of_desc {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(ref v)) => v,
|
||||
_ => "",
|
||||
}
|
||||
}
|
||||
pub fn clear_desc(&mut self) {
|
||||
self.one_of_desc = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_desc(&self) -> bool {
|
||||
match self.one_of_desc {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(..)) => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_desc(&mut self, v: ::std::string::String) {
|
||||
self.one_of_desc = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(v))
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
pub fn mut_desc(&mut self) -> &mut ::std::string::String {
|
||||
if let ::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(_)) = self.one_of_desc {
|
||||
} else {
|
||||
self.one_of_desc = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(::std::string::String::new()));
|
||||
}
|
||||
match self.one_of_desc {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(ref mut v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_desc(&mut self) -> ::std::string::String {
|
||||
if self.has_desc() {
|
||||
match self.one_of_desc.take() {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
} else {
|
||||
::std::string::String::new()
|
||||
}
|
||||
}
|
||||
|
||||
// .ColorStyle color_style = 5;
|
||||
|
||||
|
||||
pub fn get_color_style(&self) -> &super::app_create::ColorStyle {
|
||||
match self.one_of_color_style {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(ref v)) => v,
|
||||
_ => <super::app_create::ColorStyle as ::protobuf::Message>::default_instance(),
|
||||
}
|
||||
}
|
||||
pub fn clear_color_style(&mut self) {
|
||||
self.one_of_color_style = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_color_style(&self) -> bool {
|
||||
match self.one_of_color_style {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(..)) => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_color_style(&mut self, v: super::app_create::ColorStyle) {
|
||||
self.one_of_color_style = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(v))
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
pub fn mut_color_style(&mut self) -> &mut super::app_create::ColorStyle {
|
||||
if let ::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(_)) = self.one_of_color_style {
|
||||
} else {
|
||||
self.one_of_color_style = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(super::app_create::ColorStyle::new()));
|
||||
}
|
||||
match self.one_of_color_style {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(ref mut v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_color_style(&mut self) -> super::app_create::ColorStyle {
|
||||
if self.has_color_style() {
|
||||
match self.one_of_color_style.take() {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
} else {
|
||||
super::app_create::ColorStyle::new()
|
||||
}
|
||||
}
|
||||
|
||||
// bool is_trash = 6;
|
||||
|
||||
|
||||
pub fn get_is_trash(&self) -> bool {
|
||||
match self.one_of_is_trash {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_is_trash::is_trash(v)) => v,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
pub fn clear_is_trash(&mut self) {
|
||||
self.one_of_is_trash = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_is_trash(&self) -> bool {
|
||||
match self.one_of_is_trash {
|
||||
::std::option::Option::Some(UpdateAppParams_oneof_one_of_is_trash::is_trash(..)) => true,
|
||||
_ => false,
|
||||
}
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_is_trash(&mut self, v: bool) {
|
||||
self.one_of_is_trash = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_is_trash::is_trash(v))
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Message for UpdateAppParams {
|
||||
fn is_initialized(&self) -> bool {
|
||||
if let Some(UpdateAppParams_oneof_one_of_color_style::color_style(ref v)) = self.one_of_color_style {
|
||||
if !v.is_initialized() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
while !is.eof()? {
|
||||
let (field_number, wire_type) = is.read_tag_unpack()?;
|
||||
match field_number {
|
||||
1 => {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.app_id)?;
|
||||
},
|
||||
2 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
self.one_of_workspace_id = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_workspace_id::workspace_id(is.read_string()?));
|
||||
},
|
||||
3 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
self.one_of_name = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_name::name(is.read_string()?));
|
||||
},
|
||||
4 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
self.one_of_desc = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_desc::desc(is.read_string()?));
|
||||
},
|
||||
5 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
self.one_of_color_style = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_color_style::color_style(is.read_message()?));
|
||||
},
|
||||
6 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeVarint {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
self.one_of_is_trash = ::std::option::Option::Some(UpdateAppParams_oneof_one_of_is_trash::is_trash(is.read_bool()?));
|
||||
},
|
||||
_ => {
|
||||
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
|
||||
},
|
||||
};
|
||||
}
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
// Compute sizes of nested messages
|
||||
#[allow(unused_variables)]
|
||||
fn compute_size(&self) -> u32 {
|
||||
let mut my_size = 0;
|
||||
if !self.app_id.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(1, &self.app_id);
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_workspace_id {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_workspace_id::workspace_id(ref v) => {
|
||||
my_size += ::protobuf::rt::string_size(2, &v);
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_name {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_name::name(ref v) => {
|
||||
my_size += ::protobuf::rt::string_size(3, &v);
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_desc {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_desc::desc(ref v) => {
|
||||
my_size += ::protobuf::rt::string_size(4, &v);
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_color_style {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_color_style::color_style(ref v) => {
|
||||
let len = v.compute_size();
|
||||
my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_is_trash {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_is_trash::is_trash(v) => {
|
||||
my_size += 2;
|
||||
},
|
||||
};
|
||||
}
|
||||
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
|
||||
self.cached_size.set(my_size);
|
||||
my_size
|
||||
}
|
||||
|
||||
fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
|
||||
if !self.app_id.is_empty() {
|
||||
os.write_string(1, &self.app_id)?;
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_workspace_id {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_workspace_id::workspace_id(ref v) => {
|
||||
os.write_string(2, v)?;
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_name {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_name::name(ref v) => {
|
||||
os.write_string(3, v)?;
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_desc {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_desc::desc(ref v) => {
|
||||
os.write_string(4, v)?;
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_color_style {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_color_style::color_style(ref v) => {
|
||||
os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
|
||||
os.write_raw_varint32(v.get_cached_size())?;
|
||||
v.write_to_with_cached_sizes(os)?;
|
||||
},
|
||||
};
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_is_trash {
|
||||
match v {
|
||||
&UpdateAppParams_oneof_one_of_is_trash::is_trash(v) => {
|
||||
os.write_bool(6, v)?;
|
||||
},
|
||||
};
|
||||
}
|
||||
os.write_unknown_fields(self.get_unknown_fields())?;
|
||||
::std::result::Result::Ok(())
|
||||
}
|
||||
|
||||
fn get_cached_size(&self) -> u32 {
|
||||
self.cached_size.get()
|
||||
}
|
||||
|
||||
fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
|
||||
&self.unknown_fields
|
||||
}
|
||||
|
||||
fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
|
||||
&mut self.unknown_fields
|
||||
}
|
||||
|
||||
fn as_any(&self) -> &dyn (::std::any::Any) {
|
||||
self as &dyn (::std::any::Any)
|
||||
}
|
||||
fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
|
||||
self as &mut dyn (::std::any::Any)
|
||||
}
|
||||
fn into_any(self: ::std::boxed::Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
|
||||
self
|
||||
}
|
||||
|
||||
fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
Self::descriptor_static()
|
||||
}
|
||||
|
||||
fn new() -> UpdateAppParams {
|
||||
UpdateAppParams::new()
|
||||
}
|
||||
|
||||
fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
|
||||
static descriptor: ::protobuf::rt::LazyV2<::protobuf::reflect::MessageDescriptor> = ::protobuf::rt::LazyV2::INIT;
|
||||
descriptor.get(|| {
|
||||
let mut fields = ::std::vec::Vec::new();
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"app_id",
|
||||
|m: &UpdateAppParams| { &m.app_id },
|
||||
|m: &mut UpdateAppParams| { &mut m.app_id },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
|
||||
"workspace_id",
|
||||
UpdateAppParams::has_workspace_id,
|
||||
UpdateAppParams::get_workspace_id,
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
|
||||
"name",
|
||||
UpdateAppParams::has_name,
|
||||
UpdateAppParams::get_name,
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
|
||||
"desc",
|
||||
UpdateAppParams::has_desc,
|
||||
UpdateAppParams::get_desc,
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, super::app_create::ColorStyle>(
|
||||
"color_style",
|
||||
UpdateAppParams::has_color_style,
|
||||
UpdateAppParams::get_color_style,
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_singular_bool_accessor::<_>(
|
||||
"is_trash",
|
||||
UpdateAppParams::has_is_trash,
|
||||
UpdateAppParams::get_is_trash,
|
||||
));
|
||||
::protobuf::reflect::MessageDescriptor::new_pb_name::<UpdateAppParams>(
|
||||
"UpdateAppParams",
|
||||
fields,
|
||||
file_descriptor_proto()
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
fn default_instance() -> &'static UpdateAppParams {
|
||||
static instance: ::protobuf::rt::LazyV2<UpdateAppParams> = ::protobuf::rt::LazyV2::INIT;
|
||||
instance.get(UpdateAppParams::new)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::Clear for UpdateAppParams {
|
||||
fn clear(&mut self) {
|
||||
self.app_id.clear();
|
||||
self.one_of_workspace_id = ::std::option::Option::None;
|
||||
self.one_of_name = ::std::option::Option::None;
|
||||
self.one_of_desc = ::std::option::Option::None;
|
||||
self.one_of_color_style = ::std::option::Option::None;
|
||||
self.one_of_is_trash = ::std::option::Option::None;
|
||||
self.unknown_fields.clear();
|
||||
}
|
||||
}
|
||||
|
||||
impl ::std::fmt::Debug for UpdateAppParams {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
|
||||
::protobuf::text_format::fmt(self, f)
|
||||
}
|
||||
}
|
||||
|
||||
impl ::protobuf::reflect::ProtobufValue for UpdateAppParams {
|
||||
fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
|
||||
::protobuf::reflect::ReflectValueRef::Message(self)
|
||||
}
|
||||
}
|
||||
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x10app_update.proto\x1a\x10app_create.proto\"\xa5\x02\n\x10UpdateAppR\
|
||||
equest\x12\x15\n\x06app_id\x18\x01\x20\x01(\tR\x05appId\x12#\n\x0cworksp\
|
||||
@ -580,32 +1129,63 @@ static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
desc\x12.\n\x0bcolor_style\x18\x05\x20\x01(\x0b2\x0b.ColorStyleH\x03R\nc\
|
||||
olorStyle\x12\x1b\n\x08is_trash\x18\x06\x20\x01(\x08H\x04R\x07isTrashB\
|
||||
\x15\n\x13one_of_workspace_idB\r\n\x0bone_of_nameB\r\n\x0bone_of_descB\
|
||||
\x14\n\x12one_of_color_styleB\x11\n\x0fone_of_is_trashJ\x86\x04\n\x06\
|
||||
\x12\x04\0\0\n\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\t\n\x02\x03\0\x12\
|
||||
\x03\x01\0\x1a\n\n\n\x02\x04\0\x12\x04\x03\0\n\x01\n\n\n\x03\x04\0\x01\
|
||||
\x12\x03\x03\x08\x18\n\x0b\n\x04\x04\0\x02\0\x12\x03\x04\x04\x16\n\x0c\n\
|
||||
\x05\x04\0\x02\0\x05\x12\x03\x04\x04\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\
|
||||
\x03\x04\x0b\x11\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x04\x14\x15\n\x0b\n\
|
||||
\x04\x04\0\x08\0\x12\x03\x05\x04:\n\x0c\n\x05\x04\0\x08\0\x01\x12\x03\
|
||||
\x05\n\x1d\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x05\x208\n\x0c\n\x05\x04\0\
|
||||
\x02\x01\x05\x12\x03\x05\x20&\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x05'\
|
||||
3\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x0567\n\x0b\n\x04\x04\0\x08\x01\
|
||||
\x12\x03\x06\x04*\n\x0c\n\x05\x04\0\x08\x01\x01\x12\x03\x06\n\x15\n\x0b\
|
||||
\n\x04\x04\0\x02\x02\x12\x03\x06\x18(\n\x0c\n\x05\x04\0\x02\x02\x05\x12\
|
||||
\x03\x06\x18\x1e\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x06\x1f#\n\x0c\n\
|
||||
\x05\x04\0\x02\x02\x03\x12\x03\x06&'\n\x0b\n\x04\x04\0\x08\x02\x12\x03\
|
||||
\x07\x04*\n\x0c\n\x05\x04\0\x08\x02\x01\x12\x03\x07\n\x15\n\x0b\n\x04\
|
||||
\x04\0\x02\x03\x12\x03\x07\x18(\n\x0c\n\x05\x04\0\x02\x03\x05\x12\x03\
|
||||
\x07\x18\x1e\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x07\x1f#\n\x0c\n\x05\
|
||||
\x04\0\x02\x03\x03\x12\x03\x07&'\n\x0b\n\x04\x04\0\x08\x03\x12\x03\x08\
|
||||
\x04<\n\x0c\n\x05\x04\0\x08\x03\x01\x12\x03\x08\n\x1c\n\x0b\n\x04\x04\0\
|
||||
\x02\x04\x12\x03\x08\x1f:\n\x0c\n\x05\x04\0\x02\x04\x06\x12\x03\x08\x1f)\
|
||||
\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03\x08*5\n\x0c\n\x05\x04\0\x02\x04\
|
||||
\x03\x12\x03\x0889\n\x0b\n\x04\x04\0\x08\x04\x12\x03\t\x040\n\x0c\n\x05\
|
||||
\x04\0\x08\x04\x01\x12\x03\t\n\x19\n\x0b\n\x04\x04\0\x02\x05\x12\x03\t\
|
||||
\x1c.\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03\t\x1c\x20\n\x0c\n\x05\x04\0\
|
||||
\x02\x05\x01\x12\x03\t!)\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03\t,-b\x06p\
|
||||
roto3\
|
||||
\x14\n\x12one_of_color_styleB\x11\n\x0fone_of_is_trash\"\xa4\x02\n\x0fUp\
|
||||
dateAppParams\x12\x15\n\x06app_id\x18\x01\x20\x01(\tR\x05appId\x12#\n\
|
||||
\x0cworkspace_id\x18\x02\x20\x01(\tH\0R\x0bworkspaceId\x12\x14\n\x04name\
|
||||
\x18\x03\x20\x01(\tH\x01R\x04name\x12\x14\n\x04desc\x18\x04\x20\x01(\tH\
|
||||
\x02R\x04desc\x12.\n\x0bcolor_style\x18\x05\x20\x01(\x0b2\x0b.ColorStyle\
|
||||
H\x03R\ncolorStyle\x12\x1b\n\x08is_trash\x18\x06\x20\x01(\x08H\x04R\x07i\
|
||||
sTrashB\x15\n\x13one_of_workspace_idB\r\n\x0bone_of_nameB\r\n\x0bone_of_\
|
||||
descB\x14\n\x12one_of_color_styleB\x11\n\x0fone_of_is_trashJ\xef\x07\n\
|
||||
\x06\x12\x04\0\0\x12\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\t\n\x02\x03\0\
|
||||
\x12\x03\x01\0\x1a\n\n\n\x02\x04\0\x12\x04\x03\0\n\x01\n\n\n\x03\x04\0\
|
||||
\x01\x12\x03\x03\x08\x18\n\x0b\n\x04\x04\0\x02\0\x12\x03\x04\x04\x16\n\
|
||||
\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x04\x04\n\n\x0c\n\x05\x04\0\x02\0\x01\
|
||||
\x12\x03\x04\x0b\x11\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x04\x14\x15\n\
|
||||
\x0b\n\x04\x04\0\x08\0\x12\x03\x05\x04:\n\x0c\n\x05\x04\0\x08\0\x01\x12\
|
||||
\x03\x05\n\x1d\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x05\x208\n\x0c\n\x05\
|
||||
\x04\0\x02\x01\x05\x12\x03\x05\x20&\n\x0c\n\x05\x04\0\x02\x01\x01\x12\
|
||||
\x03\x05'3\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x0567\n\x0b\n\x04\x04\0\
|
||||
\x08\x01\x12\x03\x06\x04*\n\x0c\n\x05\x04\0\x08\x01\x01\x12\x03\x06\n\
|
||||
\x15\n\x0b\n\x04\x04\0\x02\x02\x12\x03\x06\x18(\n\x0c\n\x05\x04\0\x02\
|
||||
\x02\x05\x12\x03\x06\x18\x1e\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x06\
|
||||
\x1f#\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03\x06&'\n\x0b\n\x04\x04\0\x08\
|
||||
\x02\x12\x03\x07\x04*\n\x0c\n\x05\x04\0\x08\x02\x01\x12\x03\x07\n\x15\n\
|
||||
\x0b\n\x04\x04\0\x02\x03\x12\x03\x07\x18(\n\x0c\n\x05\x04\0\x02\x03\x05\
|
||||
\x12\x03\x07\x18\x1e\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\x07\x1f#\n\
|
||||
\x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x07&'\n\x0b\n\x04\x04\0\x08\x03\x12\
|
||||
\x03\x08\x04<\n\x0c\n\x05\x04\0\x08\x03\x01\x12\x03\x08\n\x1c\n\x0b\n\
|
||||
\x04\x04\0\x02\x04\x12\x03\x08\x1f:\n\x0c\n\x05\x04\0\x02\x04\x06\x12\
|
||||
\x03\x08\x1f)\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03\x08*5\n\x0c\n\x05\
|
||||
\x04\0\x02\x04\x03\x12\x03\x0889\n\x0b\n\x04\x04\0\x08\x04\x12\x03\t\x04\
|
||||
0\n\x0c\n\x05\x04\0\x08\x04\x01\x12\x03\t\n\x19\n\x0b\n\x04\x04\0\x02\
|
||||
\x05\x12\x03\t\x1c.\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03\t\x1c\x20\n\
|
||||
\x0c\n\x05\x04\0\x02\x05\x01\x12\x03\t!)\n\x0c\n\x05\x04\0\x02\x05\x03\
|
||||
\x12\x03\t,-\n\n\n\x02\x04\x01\x12\x04\x0b\0\x12\x01\n\n\n\x03\x04\x01\
|
||||
\x01\x12\x03\x0b\x08\x17\n\x0b\n\x04\x04\x01\x02\0\x12\x03\x0c\x04\x16\n\
|
||||
\x0c\n\x05\x04\x01\x02\0\x05\x12\x03\x0c\x04\n\n\x0c\n\x05\x04\x01\x02\0\
|
||||
\x01\x12\x03\x0c\x0b\x11\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x0c\x14\
|
||||
\x15\n\x0b\n\x04\x04\x01\x08\0\x12\x03\r\x04:\n\x0c\n\x05\x04\x01\x08\0\
|
||||
\x01\x12\x03\r\n\x1d\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\r\x208\n\x0c\n\
|
||||
\x05\x04\x01\x02\x01\x05\x12\x03\r\x20&\n\x0c\n\x05\x04\x01\x02\x01\x01\
|
||||
\x12\x03\r'3\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\r67\n\x0b\n\x04\x04\
|
||||
\x01\x08\x01\x12\x03\x0e\x04*\n\x0c\n\x05\x04\x01\x08\x01\x01\x12\x03\
|
||||
\x0e\n\x15\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\x0e\x18(\n\x0c\n\x05\x04\
|
||||
\x01\x02\x02\x05\x12\x03\x0e\x18\x1e\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\
|
||||
\x03\x0e\x1f#\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\x0e&'\n\x0b\n\x04\
|
||||
\x04\x01\x08\x02\x12\x03\x0f\x04*\n\x0c\n\x05\x04\x01\x08\x02\x01\x12\
|
||||
\x03\x0f\n\x15\n\x0b\n\x04\x04\x01\x02\x03\x12\x03\x0f\x18(\n\x0c\n\x05\
|
||||
\x04\x01\x02\x03\x05\x12\x03\x0f\x18\x1e\n\x0c\n\x05\x04\x01\x02\x03\x01\
|
||||
\x12\x03\x0f\x1f#\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03\x0f&'\n\x0b\n\
|
||||
\x04\x04\x01\x08\x03\x12\x03\x10\x04<\n\x0c\n\x05\x04\x01\x08\x03\x01\
|
||||
\x12\x03\x10\n\x1c\n\x0b\n\x04\x04\x01\x02\x04\x12\x03\x10\x1f:\n\x0c\n\
|
||||
\x05\x04\x01\x02\x04\x06\x12\x03\x10\x1f)\n\x0c\n\x05\x04\x01\x02\x04\
|
||||
\x01\x12\x03\x10*5\n\x0c\n\x05\x04\x01\x02\x04\x03\x12\x03\x1089\n\x0b\n\
|
||||
\x04\x04\x01\x08\x04\x12\x03\x11\x040\n\x0c\n\x05\x04\x01\x08\x04\x01\
|
||||
\x12\x03\x11\n\x19\n\x0b\n\x04\x04\x01\x02\x05\x12\x03\x11\x1c.\n\x0c\n\
|
||||
\x05\x04\x01\x02\x05\x05\x12\x03\x11\x1c\x20\n\x0c\n\x05\x04\x01\x02\x05\
|
||||
\x01\x12\x03\x11!)\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03\x11,-b\x06pro\
|
||||
to3\
|
||||
";
|
||||
|
||||
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|
||||
|
@ -219,6 +219,7 @@ pub enum WsErrCode {
|
||||
WorkspaceNameInvalid = 1,
|
||||
WorkspaceIdInvalid = 2,
|
||||
AppColorStyleInvalid = 3,
|
||||
WorkspaceDescInvalid = 4,
|
||||
AppIdInvalid = 10,
|
||||
AppNameInvalid = 11,
|
||||
ViewNameInvalid = 20,
|
||||
@ -230,6 +231,7 @@ pub enum WsErrCode {
|
||||
UserInternalError = 102,
|
||||
UserNotLoginYet = 103,
|
||||
ServerError = 1000,
|
||||
RecordNotFound = 1001,
|
||||
}
|
||||
|
||||
impl ::protobuf::ProtobufEnum for WsErrCode {
|
||||
@ -243,6 +245,7 @@ impl ::protobuf::ProtobufEnum for WsErrCode {
|
||||
1 => ::std::option::Option::Some(WsErrCode::WorkspaceNameInvalid),
|
||||
2 => ::std::option::Option::Some(WsErrCode::WorkspaceIdInvalid),
|
||||
3 => ::std::option::Option::Some(WsErrCode::AppColorStyleInvalid),
|
||||
4 => ::std::option::Option::Some(WsErrCode::WorkspaceDescInvalid),
|
||||
10 => ::std::option::Option::Some(WsErrCode::AppIdInvalid),
|
||||
11 => ::std::option::Option::Some(WsErrCode::AppNameInvalid),
|
||||
20 => ::std::option::Option::Some(WsErrCode::ViewNameInvalid),
|
||||
@ -254,6 +257,7 @@ impl ::protobuf::ProtobufEnum for WsErrCode {
|
||||
102 => ::std::option::Option::Some(WsErrCode::UserInternalError),
|
||||
103 => ::std::option::Option::Some(WsErrCode::UserNotLoginYet),
|
||||
1000 => ::std::option::Option::Some(WsErrCode::ServerError),
|
||||
1001 => ::std::option::Option::Some(WsErrCode::RecordNotFound),
|
||||
_ => ::std::option::Option::None
|
||||
}
|
||||
}
|
||||
@ -264,6 +268,7 @@ impl ::protobuf::ProtobufEnum for WsErrCode {
|
||||
WsErrCode::WorkspaceNameInvalid,
|
||||
WsErrCode::WorkspaceIdInvalid,
|
||||
WsErrCode::AppColorStyleInvalid,
|
||||
WsErrCode::WorkspaceDescInvalid,
|
||||
WsErrCode::AppIdInvalid,
|
||||
WsErrCode::AppNameInvalid,
|
||||
WsErrCode::ViewNameInvalid,
|
||||
@ -275,6 +280,7 @@ impl ::protobuf::ProtobufEnum for WsErrCode {
|
||||
WsErrCode::UserInternalError,
|
||||
WsErrCode::UserNotLoginYet,
|
||||
WsErrCode::ServerError,
|
||||
WsErrCode::RecordNotFound,
|
||||
];
|
||||
values
|
||||
}
|
||||
@ -305,53 +311,59 @@ impl ::protobuf::reflect::ProtobufValue for WsErrCode {
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x0cerrors.proto\"B\n\x0eWorkspaceError\x12\x1e\n\x04code\x18\x01\x20\
|
||||
\x01(\x0e2\n.WsErrCodeR\x04code\x12\x10\n\x03msg\x18\x02\x20\x01(\tR\x03\
|
||||
msg*\xd7\x02\n\tWsErrCode\x12\x0b\n\x07Unknown\x10\0\x12\x18\n\x14Worksp\
|
||||
msg*\x86\x03\n\tWsErrCode\x12\x0b\n\x07Unknown\x10\0\x12\x18\n\x14Worksp\
|
||||
aceNameInvalid\x10\x01\x12\x16\n\x12WorkspaceIdInvalid\x10\x02\x12\x18\n\
|
||||
\x14AppColorStyleInvalid\x10\x03\x12\x10\n\x0cAppIdInvalid\x10\n\x12\x12\
|
||||
\n\x0eAppNameInvalid\x10\x0b\x12\x13\n\x0fViewNameInvalid\x10\x14\x12\
|
||||
\x18\n\x14ViewThumbnailInvalid\x10\x15\x12\x11\n\rViewIdInvalid\x10\x16\
|
||||
\x12\x13\n\x0fViewDescInvalid\x10\x17\x12\x1a\n\x16DatabaseConnectionFai\
|
||||
l\x10d\x12\x1a\n\x16WorkspaceDatabaseError\x10e\x12\x15\n\x11UserInterna\
|
||||
lError\x10f\x12\x13\n\x0fUserNotLoginYet\x10g\x12\x10\n\x0bServerError\
|
||||
\x10\xe8\x07J\x97\x06\n\x06\x12\x04\0\0\x16\x01\n\x08\n\x01\x0c\x12\x03\
|
||||
\0\0\x12\n\n\n\x02\x04\0\x12\x04\x02\0\x05\x01\n\n\n\x03\x04\0\x01\x12\
|
||||
\x03\x02\x08\x16\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\x17\n\x0c\n\x05\
|
||||
\x04\0\x02\0\x06\x12\x03\x03\x04\r\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\
|
||||
\x03\x0e\x12\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x15\x16\n\x0b\n\x04\
|
||||
\x04\0\x02\x01\x12\x03\x04\x04\x13\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\
|
||||
\x04\x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x04\x0b\x0e\n\x0c\n\x05\
|
||||
\x04\0\x02\x01\x03\x12\x03\x04\x11\x12\n\n\n\x02\x05\0\x12\x04\x06\0\x16\
|
||||
\x01\n\n\n\x03\x05\0\x01\x12\x03\x06\x05\x0e\n\x0b\n\x04\x05\0\x02\0\x12\
|
||||
\x03\x07\x04\x10\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x07\x04\x0b\n\x0c\n\
|
||||
\x05\x05\0\x02\0\x02\x12\x03\x07\x0e\x0f\n\x0b\n\x04\x05\0\x02\x01\x12\
|
||||
\x03\x08\x04\x1d\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x08\x04\x18\n\x0c\
|
||||
\n\x05\x05\0\x02\x01\x02\x12\x03\x08\x1b\x1c\n\x0b\n\x04\x05\0\x02\x02\
|
||||
\x12\x03\t\x04\x1b\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\t\x04\x16\n\x0c\
|
||||
\n\x05\x05\0\x02\x02\x02\x12\x03\t\x19\x1a\n\x0b\n\x04\x05\0\x02\x03\x12\
|
||||
\x03\n\x04\x1d\n\x0c\n\x05\x05\0\x02\x03\x01\x12\x03\n\x04\x18\n\x0c\n\
|
||||
\x05\x05\0\x02\x03\x02\x12\x03\n\x1b\x1c\n\x0b\n\x04\x05\0\x02\x04\x12\
|
||||
\x03\x0b\x04\x16\n\x0c\n\x05\x05\0\x02\x04\x01\x12\x03\x0b\x04\x10\n\x0c\
|
||||
\n\x05\x05\0\x02\x04\x02\x12\x03\x0b\x13\x15\n\x0b\n\x04\x05\0\x02\x05\
|
||||
\x12\x03\x0c\x04\x18\n\x0c\n\x05\x05\0\x02\x05\x01\x12\x03\x0c\x04\x12\n\
|
||||
\x0c\n\x05\x05\0\x02\x05\x02\x12\x03\x0c\x15\x17\n\x0b\n\x04\x05\0\x02\
|
||||
\x06\x12\x03\r\x04\x19\n\x0c\n\x05\x05\0\x02\x06\x01\x12\x03\r\x04\x13\n\
|
||||
\x0c\n\x05\x05\0\x02\x06\x02\x12\x03\r\x16\x18\n\x0b\n\x04\x05\0\x02\x07\
|
||||
\x12\x03\x0e\x04\x1e\n\x0c\n\x05\x05\0\x02\x07\x01\x12\x03\x0e\x04\x18\n\
|
||||
\x0c\n\x05\x05\0\x02\x07\x02\x12\x03\x0e\x1b\x1d\n\x0b\n\x04\x05\0\x02\
|
||||
\x08\x12\x03\x0f\x04\x17\n\x0c\n\x05\x05\0\x02\x08\x01\x12\x03\x0f\x04\
|
||||
\x11\n\x0c\n\x05\x05\0\x02\x08\x02\x12\x03\x0f\x14\x16\n\x0b\n\x04\x05\0\
|
||||
\x02\t\x12\x03\x10\x04\x19\n\x0c\n\x05\x05\0\x02\t\x01\x12\x03\x10\x04\
|
||||
\x13\n\x0c\n\x05\x05\0\x02\t\x02\x12\x03\x10\x16\x18\n\x0b\n\x04\x05\0\
|
||||
\x02\n\x12\x03\x11\x04!\n\x0c\n\x05\x05\0\x02\n\x01\x12\x03\x11\x04\x1a\
|
||||
\n\x0c\n\x05\x05\0\x02\n\x02\x12\x03\x11\x1d\x20\n\x0b\n\x04\x05\0\x02\
|
||||
\x0b\x12\x03\x12\x04!\n\x0c\n\x05\x05\0\x02\x0b\x01\x12\x03\x12\x04\x1a\
|
||||
\n\x0c\n\x05\x05\0\x02\x0b\x02\x12\x03\x12\x1d\x20\n\x0b\n\x04\x05\0\x02\
|
||||
\x0c\x12\x03\x13\x04\x1c\n\x0c\n\x05\x05\0\x02\x0c\x01\x12\x03\x13\x04\
|
||||
\x15\n\x0c\n\x05\x05\0\x02\x0c\x02\x12\x03\x13\x18\x1b\n\x0b\n\x04\x05\0\
|
||||
\x02\r\x12\x03\x14\x04\x1a\n\x0c\n\x05\x05\0\x02\r\x01\x12\x03\x14\x04\
|
||||
\x13\n\x0c\n\x05\x05\0\x02\r\x02\x12\x03\x14\x16\x19\n\x0b\n\x04\x05\0\
|
||||
\x02\x0e\x12\x03\x15\x04\x17\n\x0c\n\x05\x05\0\x02\x0e\x01\x12\x03\x15\
|
||||
\x04\x0f\n\x0c\n\x05\x05\0\x02\x0e\x02\x12\x03\x15\x12\x16b\x06proto3\
|
||||
\x14AppColorStyleInvalid\x10\x03\x12\x18\n\x14WorkspaceDescInvalid\x10\
|
||||
\x04\x12\x10\n\x0cAppIdInvalid\x10\n\x12\x12\n\x0eAppNameInvalid\x10\x0b\
|
||||
\x12\x13\n\x0fViewNameInvalid\x10\x14\x12\x18\n\x14ViewThumbnailInvalid\
|
||||
\x10\x15\x12\x11\n\rViewIdInvalid\x10\x16\x12\x13\n\x0fViewDescInvalid\
|
||||
\x10\x17\x12\x1a\n\x16DatabaseConnectionFail\x10d\x12\x1a\n\x16Workspace\
|
||||
DatabaseError\x10e\x12\x15\n\x11UserInternalError\x10f\x12\x13\n\x0fUser\
|
||||
NotLoginYet\x10g\x12\x10\n\x0bServerError\x10\xe8\x07\x12\x13\n\x0eRecor\
|
||||
dNotFound\x10\xe9\x07J\xe9\x06\n\x06\x12\x04\0\0\x18\x01\n\x08\n\x01\x0c\
|
||||
\x12\x03\0\0\x12\n\n\n\x02\x04\0\x12\x04\x02\0\x05\x01\n\n\n\x03\x04\0\
|
||||
\x01\x12\x03\x02\x08\x16\n\x0b\n\x04\x04\0\x02\0\x12\x03\x03\x04\x17\n\
|
||||
\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x03\x04\r\n\x0c\n\x05\x04\0\x02\0\x01\
|
||||
\x12\x03\x03\x0e\x12\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x03\x15\x16\n\
|
||||
\x0b\n\x04\x04\0\x02\x01\x12\x03\x04\x04\x13\n\x0c\n\x05\x04\0\x02\x01\
|
||||
\x05\x12\x03\x04\x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x04\x0b\x0e\
|
||||
\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x04\x11\x12\n\n\n\x02\x05\0\x12\
|
||||
\x04\x06\0\x18\x01\n\n\n\x03\x05\0\x01\x12\x03\x06\x05\x0e\n\x0b\n\x04\
|
||||
\x05\0\x02\0\x12\x03\x07\x04\x10\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\x07\
|
||||
\x04\x0b\n\x0c\n\x05\x05\0\x02\0\x02\x12\x03\x07\x0e\x0f\n\x0b\n\x04\x05\
|
||||
\0\x02\x01\x12\x03\x08\x04\x1d\n\x0c\n\x05\x05\0\x02\x01\x01\x12\x03\x08\
|
||||
\x04\x18\n\x0c\n\x05\x05\0\x02\x01\x02\x12\x03\x08\x1b\x1c\n\x0b\n\x04\
|
||||
\x05\0\x02\x02\x12\x03\t\x04\x1b\n\x0c\n\x05\x05\0\x02\x02\x01\x12\x03\t\
|
||||
\x04\x16\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03\t\x19\x1a\n\x0b\n\x04\x05\
|
||||
\0\x02\x03\x12\x03\n\x04\x1d\n\x0c\n\x05\x05\0\x02\x03\x01\x12\x03\n\x04\
|
||||
\x18\n\x0c\n\x05\x05\0\x02\x03\x02\x12\x03\n\x1b\x1c\n\x0b\n\x04\x05\0\
|
||||
\x02\x04\x12\x03\x0b\x04\x1d\n\x0c\n\x05\x05\0\x02\x04\x01\x12\x03\x0b\
|
||||
\x04\x18\n\x0c\n\x05\x05\0\x02\x04\x02\x12\x03\x0b\x1b\x1c\n\x0b\n\x04\
|
||||
\x05\0\x02\x05\x12\x03\x0c\x04\x16\n\x0c\n\x05\x05\0\x02\x05\x01\x12\x03\
|
||||
\x0c\x04\x10\n\x0c\n\x05\x05\0\x02\x05\x02\x12\x03\x0c\x13\x15\n\x0b\n\
|
||||
\x04\x05\0\x02\x06\x12\x03\r\x04\x18\n\x0c\n\x05\x05\0\x02\x06\x01\x12\
|
||||
\x03\r\x04\x12\n\x0c\n\x05\x05\0\x02\x06\x02\x12\x03\r\x15\x17\n\x0b\n\
|
||||
\x04\x05\0\x02\x07\x12\x03\x0e\x04\x19\n\x0c\n\x05\x05\0\x02\x07\x01\x12\
|
||||
\x03\x0e\x04\x13\n\x0c\n\x05\x05\0\x02\x07\x02\x12\x03\x0e\x16\x18\n\x0b\
|
||||
\n\x04\x05\0\x02\x08\x12\x03\x0f\x04\x1e\n\x0c\n\x05\x05\0\x02\x08\x01\
|
||||
\x12\x03\x0f\x04\x18\n\x0c\n\x05\x05\0\x02\x08\x02\x12\x03\x0f\x1b\x1d\n\
|
||||
\x0b\n\x04\x05\0\x02\t\x12\x03\x10\x04\x17\n\x0c\n\x05\x05\0\x02\t\x01\
|
||||
\x12\x03\x10\x04\x11\n\x0c\n\x05\x05\0\x02\t\x02\x12\x03\x10\x14\x16\n\
|
||||
\x0b\n\x04\x05\0\x02\n\x12\x03\x11\x04\x19\n\x0c\n\x05\x05\0\x02\n\x01\
|
||||
\x12\x03\x11\x04\x13\n\x0c\n\x05\x05\0\x02\n\x02\x12\x03\x11\x16\x18\n\
|
||||
\x0b\n\x04\x05\0\x02\x0b\x12\x03\x12\x04!\n\x0c\n\x05\x05\0\x02\x0b\x01\
|
||||
\x12\x03\x12\x04\x1a\n\x0c\n\x05\x05\0\x02\x0b\x02\x12\x03\x12\x1d\x20\n\
|
||||
\x0b\n\x04\x05\0\x02\x0c\x12\x03\x13\x04!\n\x0c\n\x05\x05\0\x02\x0c\x01\
|
||||
\x12\x03\x13\x04\x1a\n\x0c\n\x05\x05\0\x02\x0c\x02\x12\x03\x13\x1d\x20\n\
|
||||
\x0b\n\x04\x05\0\x02\r\x12\x03\x14\x04\x1c\n\x0c\n\x05\x05\0\x02\r\x01\
|
||||
\x12\x03\x14\x04\x15\n\x0c\n\x05\x05\0\x02\r\x02\x12\x03\x14\x18\x1b\n\
|
||||
\x0b\n\x04\x05\0\x02\x0e\x12\x03\x15\x04\x1a\n\x0c\n\x05\x05\0\x02\x0e\
|
||||
\x01\x12\x03\x15\x04\x13\n\x0c\n\x05\x05\0\x02\x0e\x02\x12\x03\x15\x16\
|
||||
\x19\n\x0b\n\x04\x05\0\x02\x0f\x12\x03\x16\x04\x17\n\x0c\n\x05\x05\0\x02\
|
||||
\x0f\x01\x12\x03\x16\x04\x0f\n\x0c\n\x05\x05\0\x02\x0f\x02\x12\x03\x16\
|
||||
\x12\x16\n\x0b\n\x04\x05\0\x02\x10\x12\x03\x17\x04\x1a\n\x0c\n\x05\x05\0\
|
||||
\x02\x10\x01\x12\x03\x17\x04\x12\n\x0c\n\x05\x05\0\x02\x10\x02\x12\x03\
|
||||
\x17\x15\x19b\x06proto3\
|
||||
";
|
||||
|
||||
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|
||||
|
@ -229,8 +229,7 @@ pub struct CreateWorkspaceParams {
|
||||
// message fields
|
||||
pub name: ::std::string::String,
|
||||
pub desc: ::std::string::String,
|
||||
// message oneof groups
|
||||
pub one_of_user_id: ::std::option::Option<CreateWorkspaceParams_oneof_one_of_user_id>,
|
||||
pub user_id: ::std::string::String,
|
||||
// special fields
|
||||
pub unknown_fields: ::protobuf::UnknownFields,
|
||||
pub cached_size: ::protobuf::CachedSize,
|
||||
@ -242,11 +241,6 @@ impl<'a> ::std::default::Default for &'a CreateWorkspaceParams {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone,PartialEq,Debug)]
|
||||
pub enum CreateWorkspaceParams_oneof_one_of_user_id {
|
||||
user_id(::std::string::String),
|
||||
}
|
||||
|
||||
impl CreateWorkspaceParams {
|
||||
pub fn new() -> CreateWorkspaceParams {
|
||||
::std::default::Default::default()
|
||||
@ -308,49 +302,26 @@ impl CreateWorkspaceParams {
|
||||
|
||||
|
||||
pub fn get_user_id(&self) -> &str {
|
||||
match self.one_of_user_id {
|
||||
::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(ref v)) => v,
|
||||
_ => "",
|
||||
}
|
||||
&self.user_id
|
||||
}
|
||||
pub fn clear_user_id(&mut self) {
|
||||
self.one_of_user_id = ::std::option::Option::None;
|
||||
}
|
||||
|
||||
pub fn has_user_id(&self) -> bool {
|
||||
match self.one_of_user_id {
|
||||
::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(..)) => true,
|
||||
_ => false,
|
||||
}
|
||||
self.user_id.clear();
|
||||
}
|
||||
|
||||
// Param is passed by value, moved
|
||||
pub fn set_user_id(&mut self, v: ::std::string::String) {
|
||||
self.one_of_user_id = ::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(v))
|
||||
self.user_id = v;
|
||||
}
|
||||
|
||||
// Mutable pointer to the field.
|
||||
// If field is not initialized, it is initialized with default value first.
|
||||
pub fn mut_user_id(&mut self) -> &mut ::std::string::String {
|
||||
if let ::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(_)) = self.one_of_user_id {
|
||||
} else {
|
||||
self.one_of_user_id = ::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(::std::string::String::new()));
|
||||
}
|
||||
match self.one_of_user_id {
|
||||
::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(ref mut v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
&mut self.user_id
|
||||
}
|
||||
|
||||
// Take field
|
||||
pub fn take_user_id(&mut self) -> ::std::string::String {
|
||||
if self.has_user_id() {
|
||||
match self.one_of_user_id.take() {
|
||||
::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(v)) => v,
|
||||
_ => panic!(),
|
||||
}
|
||||
} else {
|
||||
::std::string::String::new()
|
||||
}
|
||||
::std::mem::replace(&mut self.user_id, ::std::string::String::new())
|
||||
}
|
||||
}
|
||||
|
||||
@ -370,10 +341,7 @@ impl ::protobuf::Message for CreateWorkspaceParams {
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.desc)?;
|
||||
},
|
||||
3 => {
|
||||
if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
|
||||
return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
|
||||
}
|
||||
self.one_of_user_id = ::std::option::Option::Some(CreateWorkspaceParams_oneof_one_of_user_id::user_id(is.read_string()?));
|
||||
::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.user_id)?;
|
||||
},
|
||||
_ => {
|
||||
::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
|
||||
@ -393,12 +361,8 @@ impl ::protobuf::Message for CreateWorkspaceParams {
|
||||
if !self.desc.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(2, &self.desc);
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_user_id {
|
||||
match v {
|
||||
&CreateWorkspaceParams_oneof_one_of_user_id::user_id(ref v) => {
|
||||
my_size += ::protobuf::rt::string_size(3, &v);
|
||||
},
|
||||
};
|
||||
if !self.user_id.is_empty() {
|
||||
my_size += ::protobuf::rt::string_size(3, &self.user_id);
|
||||
}
|
||||
my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
|
||||
self.cached_size.set(my_size);
|
||||
@ -412,12 +376,8 @@ impl ::protobuf::Message for CreateWorkspaceParams {
|
||||
if !self.desc.is_empty() {
|
||||
os.write_string(2, &self.desc)?;
|
||||
}
|
||||
if let ::std::option::Option::Some(ref v) = self.one_of_user_id {
|
||||
match v {
|
||||
&CreateWorkspaceParams_oneof_one_of_user_id::user_id(ref v) => {
|
||||
os.write_string(3, v)?;
|
||||
},
|
||||
};
|
||||
if !self.user_id.is_empty() {
|
||||
os.write_string(3, &self.user_id)?;
|
||||
}
|
||||
os.write_unknown_fields(self.get_unknown_fields())?;
|
||||
::std::result::Result::Ok(())
|
||||
@ -467,10 +427,10 @@ impl ::protobuf::Message for CreateWorkspaceParams {
|
||||
|m: &CreateWorkspaceParams| { &m.desc },
|
||||
|m: &mut CreateWorkspaceParams| { &mut m.desc },
|
||||
));
|
||||
fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
|
||||
fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
|
||||
"user_id",
|
||||
CreateWorkspaceParams::has_user_id,
|
||||
CreateWorkspaceParams::get_user_id,
|
||||
|m: &CreateWorkspaceParams| { &m.user_id },
|
||||
|m: &mut CreateWorkspaceParams| { &mut m.user_id },
|
||||
));
|
||||
::protobuf::reflect::MessageDescriptor::new_pb_name::<CreateWorkspaceParams>(
|
||||
"CreateWorkspaceParams",
|
||||
@ -490,7 +450,7 @@ impl ::protobuf::Clear for CreateWorkspaceParams {
|
||||
fn clear(&mut self) {
|
||||
self.name.clear();
|
||||
self.desc.clear();
|
||||
self.one_of_user_id = ::std::option::Option::None;
|
||||
self.user_id.clear();
|
||||
self.unknown_fields.clear();
|
||||
}
|
||||
}
|
||||
@ -976,49 +936,48 @@ impl ::protobuf::reflect::ProtobufValue for Workspaces {
|
||||
static file_descriptor_proto_data: &'static [u8] = b"\
|
||||
\n\x16workspace_create.proto\x1a\x10app_create.proto\"@\n\x16CreateWorks\
|
||||
paceRequest\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x12\n\x04d\
|
||||
esc\x18\x02\x20\x01(\tR\x04desc\"l\n\x15CreateWorkspaceParams\x12\x12\n\
|
||||
esc\x18\x02\x20\x01(\tR\x04desc\"X\n\x15CreateWorkspaceParams\x12\x12\n\
|
||||
\x04name\x18\x01\x20\x01(\tR\x04name\x12\x12\n\x04desc\x18\x02\x20\x01(\
|
||||
\tR\x04desc\x12\x19\n\x07user_id\x18\x03\x20\x01(\tH\0R\x06userIdB\x10\n\
|
||||
\x0eone_of_user_id\"e\n\tWorkspace\x12\x0e\n\x02id\x18\x01\x20\x01(\tR\
|
||||
\x02id\x12\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x12\n\x04desc\
|
||||
\x18\x03\x20\x01(\tR\x04desc\x12\x20\n\x04apps\x18\x04\x20\x01(\x0b2\x0c\
|
||||
.RepeatedAppR\x04apps\".\n\nWorkspaces\x12\x20\n\x05items\x18\x01\x20\
|
||||
\x03(\x0b2\n.WorkspaceR\x05itemsJ\xcc\x05\n\x06\x12\x04\0\0\x14\x01\n\
|
||||
\x08\n\x01\x0c\x12\x03\0\0\x12\n\t\n\x02\x03\0\x12\x03\x01\0\x1a\n\n\n\
|
||||
\x02\x04\0\x12\x04\x03\0\x06\x01\n\n\n\x03\x04\0\x01\x12\x03\x03\x08\x1e\
|
||||
\n\x0b\n\x04\x04\0\x02\0\x12\x03\x04\x04\x14\n\x0c\n\x05\x04\0\x02\0\x05\
|
||||
\x12\x03\x04\x04\n\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x04\x0b\x0f\n\x0c\
|
||||
\n\x05\x04\0\x02\0\x03\x12\x03\x04\x12\x13\n\x0b\n\x04\x04\0\x02\x01\x12\
|
||||
\x03\x05\x04\x14\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x05\x04\n\n\x0c\n\
|
||||
\x05\x04\0\x02\x01\x01\x12\x03\x05\x0b\x0f\n\x0c\n\x05\x04\0\x02\x01\x03\
|
||||
\x12\x03\x05\x12\x13\n\n\n\x02\x04\x01\x12\x04\x07\0\x0b\x01\n\n\n\x03\
|
||||
\x04\x01\x01\x12\x03\x07\x08\x1d\n\x0b\n\x04\x04\x01\x02\0\x12\x03\x08\
|
||||
\x04\x14\n\x0c\n\x05\x04\x01\x02\0\x05\x12\x03\x08\x04\n\n\x0c\n\x05\x04\
|
||||
\x01\x02\0\x01\x12\x03\x08\x0b\x0f\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\
|
||||
\x08\x12\x13\n\x0b\n\x04\x04\x01\x02\x01\x12\x03\t\x04\x14\n\x0c\n\x05\
|
||||
\x04\x01\x02\x01\x05\x12\x03\t\x04\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\
|
||||
\x03\t\x0b\x0f\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03\t\x12\x13\n\x0b\n\
|
||||
\x04\x04\x01\x08\0\x12\x03\n\x040\n\x0c\n\x05\x04\x01\x08\0\x01\x12\x03\
|
||||
\n\n\x18\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\n\x1b.\n\x0c\n\x05\x04\x01\
|
||||
\x02\x02\x05\x12\x03\n\x1b!\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03\n\")\
|
||||
\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\n,-\n\n\n\x02\x04\x02\x12\x04\
|
||||
\x0c\0\x11\x01\n\n\n\x03\x04\x02\x01\x12\x03\x0c\x08\x11\n\x0b\n\x04\x04\
|
||||
\x02\x02\0\x12\x03\r\x04\x12\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03\r\x04\
|
||||
\n\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03\r\x0b\r\n\x0c\n\x05\x04\x02\x02\
|
||||
\0\x03\x12\x03\r\x10\x11\n\x0b\n\x04\x04\x02\x02\x01\x12\x03\x0e\x04\x14\
|
||||
\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03\x0e\x04\n\n\x0c\n\x05\x04\x02\
|
||||
\x02\x01\x01\x12\x03\x0e\x0b\x0f\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03\
|
||||
\x0e\x12\x13\n\x0b\n\x04\x04\x02\x02\x02\x12\x03\x0f\x04\x14\n\x0c\n\x05\
|
||||
\x04\x02\x02\x02\x05\x12\x03\x0f\x04\n\n\x0c\n\x05\x04\x02\x02\x02\x01\
|
||||
\x12\x03\x0f\x0b\x0f\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03\x0f\x12\x13\
|
||||
\n\x0b\n\x04\x04\x02\x02\x03\x12\x03\x10\x04\x19\n\x0c\n\x05\x04\x02\x02\
|
||||
\x03\x06\x12\x03\x10\x04\x0f\n\x0c\n\x05\x04\x02\x02\x03\x01\x12\x03\x10\
|
||||
\x10\x14\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03\x10\x17\x18\n\n\n\x02\
|
||||
\x04\x03\x12\x04\x12\0\x14\x01\n\n\n\x03\x04\x03\x01\x12\x03\x12\x08\x12\
|
||||
\n\x0b\n\x04\x04\x03\x02\0\x12\x03\x13\x04!\n\x0c\n\x05\x04\x03\x02\0\
|
||||
\x04\x12\x03\x13\x04\x0c\n\x0c\n\x05\x04\x03\x02\0\x06\x12\x03\x13\r\x16\
|
||||
\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03\x13\x17\x1c\n\x0c\n\x05\x04\x03\
|
||||
\x02\0\x03\x12\x03\x13\x1f\x20b\x06proto3\
|
||||
\tR\x04desc\x12\x17\n\x07user_id\x18\x03\x20\x01(\tR\x06userId\"e\n\tWor\
|
||||
kspace\x12\x0e\n\x02id\x18\x01\x20\x01(\tR\x02id\x12\x12\n\x04name\x18\
|
||||
\x02\x20\x01(\tR\x04name\x12\x12\n\x04desc\x18\x03\x20\x01(\tR\x04desc\
|
||||
\x12\x20\n\x04apps\x18\x04\x20\x01(\x0b2\x0c.RepeatedAppR\x04apps\".\n\n\
|
||||
Workspaces\x12\x20\n\x05items\x18\x01\x20\x03(\x0b2\n.WorkspaceR\x05item\
|
||||
sJ\xb1\x05\n\x06\x12\x04\0\0\x14\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\t\
|
||||
\n\x02\x03\0\x12\x03\x01\0\x1a\n\n\n\x02\x04\0\x12\x04\x03\0\x06\x01\n\n\
|
||||
\n\x03\x04\0\x01\x12\x03\x03\x08\x1e\n\x0b\n\x04\x04\0\x02\0\x12\x03\x04\
|
||||
\x04\x14\n\x0c\n\x05\x04\0\x02\0\x05\x12\x03\x04\x04\n\n\x0c\n\x05\x04\0\
|
||||
\x02\0\x01\x12\x03\x04\x0b\x0f\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x04\
|
||||
\x12\x13\n\x0b\n\x04\x04\0\x02\x01\x12\x03\x05\x04\x14\n\x0c\n\x05\x04\0\
|
||||
\x02\x01\x05\x12\x03\x05\x04\n\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x05\
|
||||
\x0b\x0f\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03\x05\x12\x13\n\n\n\x02\x04\
|
||||
\x01\x12\x04\x07\0\x0b\x01\n\n\n\x03\x04\x01\x01\x12\x03\x07\x08\x1d\n\
|
||||
\x0b\n\x04\x04\x01\x02\0\x12\x03\x08\x04\x14\n\x0c\n\x05\x04\x01\x02\0\
|
||||
\x05\x12\x03\x08\x04\n\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03\x08\x0b\x0f\
|
||||
\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03\x08\x12\x13\n\x0b\n\x04\x04\x01\
|
||||
\x02\x01\x12\x03\t\x04\x14\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\x03\t\x04\
|
||||
\n\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03\t\x0b\x0f\n\x0c\n\x05\x04\x01\
|
||||
\x02\x01\x03\x12\x03\t\x12\x13\n\x0b\n\x04\x04\x01\x02\x02\x12\x03\n\x04\
|
||||
\x17\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03\n\x04\n\n\x0c\n\x05\x04\x01\
|
||||
\x02\x02\x01\x12\x03\n\x0b\x12\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x03\n\
|
||||
\x15\x16\n\n\n\x02\x04\x02\x12\x04\x0c\0\x11\x01\n\n\n\x03\x04\x02\x01\
|
||||
\x12\x03\x0c\x08\x11\n\x0b\n\x04\x04\x02\x02\0\x12\x03\r\x04\x12\n\x0c\n\
|
||||
\x05\x04\x02\x02\0\x05\x12\x03\r\x04\n\n\x0c\n\x05\x04\x02\x02\0\x01\x12\
|
||||
\x03\r\x0b\r\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03\r\x10\x11\n\x0b\n\x04\
|
||||
\x04\x02\x02\x01\x12\x03\x0e\x04\x14\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\
|
||||
\x03\x0e\x04\n\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03\x0e\x0b\x0f\n\x0c\
|
||||
\n\x05\x04\x02\x02\x01\x03\x12\x03\x0e\x12\x13\n\x0b\n\x04\x04\x02\x02\
|
||||
\x02\x12\x03\x0f\x04\x14\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03\x0f\x04\
|
||||
\n\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03\x0f\x0b\x0f\n\x0c\n\x05\x04\
|
||||
\x02\x02\x02\x03\x12\x03\x0f\x12\x13\n\x0b\n\x04\x04\x02\x02\x03\x12\x03\
|
||||
\x10\x04\x19\n\x0c\n\x05\x04\x02\x02\x03\x06\x12\x03\x10\x04\x0f\n\x0c\n\
|
||||
\x05\x04\x02\x02\x03\x01\x12\x03\x10\x10\x14\n\x0c\n\x05\x04\x02\x02\x03\
|
||||
\x03\x12\x03\x10\x17\x18\n\n\n\x02\x04\x03\x12\x04\x12\0\x14\x01\n\n\n\
|
||||
\x03\x04\x03\x01\x12\x03\x12\x08\x12\n\x0b\n\x04\x04\x03\x02\0\x12\x03\
|
||||
\x13\x04!\n\x0c\n\x05\x04\x03\x02\0\x04\x12\x03\x13\x04\x0c\n\x0c\n\x05\
|
||||
\x04\x03\x02\0\x06\x12\x03\x13\r\x16\n\x0c\n\x05\x04\x03\x02\0\x01\x12\
|
||||
\x03\x13\x17\x1c\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03\x13\x1f\x20b\x06p\
|
||||
roto3\
|
||||
";
|
||||
|
||||
static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;
|
||||
|
@ -10,6 +10,13 @@ message CreateAppRequest {
|
||||
message ColorStyle {
|
||||
string theme_color = 1;
|
||||
}
|
||||
message CreateAppParams {
|
||||
string workspace_id = 1;
|
||||
string name = 2;
|
||||
string desc = 3;
|
||||
ColorStyle color_style = 4;
|
||||
string user_id = 5;
|
||||
}
|
||||
message App {
|
||||
string id = 1;
|
||||
string workspace_id = 2;
|
||||
|
@ -3,3 +3,6 @@ syntax = "proto3";
|
||||
message DeleteAppRequest {
|
||||
string app_id = 1;
|
||||
}
|
||||
message DeleteAppParams {
|
||||
string app_id = 1;
|
||||
}
|
||||
|
@ -5,3 +5,8 @@ message QueryAppRequest {
|
||||
bool read_belongings = 2;
|
||||
bool is_trash = 3;
|
||||
}
|
||||
message QueryAppParams {
|
||||
string app_id = 1;
|
||||
bool read_belongings = 2;
|
||||
bool is_trash = 3;
|
||||
}
|
||||
|
@ -9,3 +9,11 @@ message UpdateAppRequest {
|
||||
oneof one_of_color_style { ColorStyle color_style = 5; };
|
||||
oneof one_of_is_trash { bool is_trash = 6; };
|
||||
}
|
||||
message UpdateAppParams {
|
||||
string app_id = 1;
|
||||
oneof one_of_workspace_id { string workspace_id = 2; };
|
||||
oneof one_of_name { string name = 3; };
|
||||
oneof one_of_desc { string desc = 4; };
|
||||
oneof one_of_color_style { ColorStyle color_style = 5; };
|
||||
oneof one_of_is_trash { bool is_trash = 6; };
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ enum WsErrCode {
|
||||
WorkspaceNameInvalid = 1;
|
||||
WorkspaceIdInvalid = 2;
|
||||
AppColorStyleInvalid = 3;
|
||||
WorkspaceDescInvalid = 4;
|
||||
AppIdInvalid = 10;
|
||||
AppNameInvalid = 11;
|
||||
ViewNameInvalid = 20;
|
||||
@ -20,4 +21,5 @@ enum WsErrCode {
|
||||
UserInternalError = 102;
|
||||
UserNotLoginYet = 103;
|
||||
ServerError = 1000;
|
||||
RecordNotFound = 1001;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ message CreateWorkspaceRequest {
|
||||
message CreateWorkspaceParams {
|
||||
string name = 1;
|
||||
string desc = 2;
|
||||
oneof one_of_user_id { string user_id = 3; };
|
||||
string user_id = 3;
|
||||
}
|
||||
message Workspace {
|
||||
string id = 1;
|
||||
|
@ -7,6 +7,7 @@ use crate::{
|
||||
sql_tables::app::{AppTable, AppTableChangeset, AppTableSql},
|
||||
};
|
||||
use flowy_dispatch::prelude::DispatchFuture;
|
||||
use flowy_net::request::HttpRequestBuilder;
|
||||
use std::sync::Arc;
|
||||
|
||||
pub struct AppController {
|
||||
@ -29,7 +30,12 @@ impl AppController {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn create_app(&self, params: CreateAppParams) -> Result<App, WorkspaceError> {
|
||||
pub fn create_app(&self, mut params: CreateAppParams) -> Result<App, WorkspaceError> {
|
||||
let user_id = self.user.user_id()?;
|
||||
params.user_id = user_id;
|
||||
|
||||
// TODO: server
|
||||
|
||||
let app_table = AppTable::new(params);
|
||||
let app: App = app_table.clone().into();
|
||||
let _ = self.sql.create_app(app_table)?;
|
||||
@ -73,3 +79,52 @@ impl AppController {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn create_app_request(params: CreateAppParams, url: &str) -> Result<App, WorkspaceError> {
|
||||
let app = HttpRequestBuilder::post(&url.to_owned())
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?
|
||||
.response()
|
||||
.await?;
|
||||
Ok(app)
|
||||
}
|
||||
|
||||
pub async fn read_app_request(
|
||||
params: QueryAppParams,
|
||||
url: &str,
|
||||
) -> Result<Option<App>, WorkspaceError> {
|
||||
let result = HttpRequestBuilder::get(&url.to_owned())
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?
|
||||
.response::<App>()
|
||||
.await;
|
||||
|
||||
match result {
|
||||
Ok(app) => Ok(Some(app)),
|
||||
Err(e) => {
|
||||
if e.is_not_found() {
|
||||
Ok(None)
|
||||
} else {
|
||||
Err(e.into())
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn update_app_request(params: UpdateAppParams, url: &str) -> Result<(), WorkspaceError> {
|
||||
let _ = HttpRequestBuilder::patch(&url.to_owned())
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn delete_app_request(params: DeleteAppParams, url: &str) -> Result<(), WorkspaceError> {
|
||||
let _ = HttpRequestBuilder::delete(&url.to_owned())
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?;
|
||||
Ok(())
|
||||
}
|
||||
|
@ -35,7 +35,9 @@ impl WorkspaceController {
|
||||
mut params: CreateWorkspaceParams,
|
||||
) -> Result<Workspace, WorkspaceError> {
|
||||
let user_id = self.user.user_id()?;
|
||||
params.user_id = Some(user_id.clone());
|
||||
params.user_id = user_id.clone();
|
||||
|
||||
// TODO: server
|
||||
|
||||
let workspace_table = WorkspaceTable::new(params, &user_id);
|
||||
let workspace: Workspace = workspace_table.clone().into();
|
||||
@ -124,18 +126,52 @@ pub async fn create_workspace_request(
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?
|
||||
.response()?;
|
||||
.response()
|
||||
.await?;
|
||||
Ok(workspace)
|
||||
}
|
||||
|
||||
pub async fn read_workspace_request(
|
||||
params: QueryWorkspaceParams,
|
||||
url: &str,
|
||||
) -> Result<Workspace, WorkspaceError> {
|
||||
let workspace = HttpRequestBuilder::get(&url.to_owned())
|
||||
) -> Result<Option<Workspace>, WorkspaceError> {
|
||||
let result = HttpRequestBuilder::get(&url.to_owned())
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?
|
||||
.response()?;
|
||||
Ok(workspace)
|
||||
.response::<Workspace>()
|
||||
.await;
|
||||
|
||||
match result {
|
||||
Ok(workspace) => Ok(Some(workspace)),
|
||||
Err(e) => {
|
||||
if e.is_not_found() {
|
||||
Ok(None)
|
||||
} else {
|
||||
Err(e.into())
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn update_workspace_request(
|
||||
params: UpdateWorkspaceParams,
|
||||
url: &str,
|
||||
) -> Result<(), WorkspaceError> {
|
||||
let _ = HttpRequestBuilder::patch(&url.to_owned())
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn delete_workspace_request(
|
||||
params: DeleteWorkspaceParams,
|
||||
url: &str,
|
||||
) -> Result<(), WorkspaceError> {
|
||||
let _ = HttpRequestBuilder::delete(&url.to_owned())
|
||||
.protobuf(params)?
|
||||
.send()
|
||||
.await?;
|
||||
Ok(())
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user