From ff66a7f3eed43f8ff49c18f068c6c3340c98cedd Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 3 Oct 2019 08:35:51 +0300 Subject: [PATCH] Settings --- lib/data/models/company_model.dart | 13 ++ lib/data/models/company_model.g.dart | 136 ++++++++++++++++++ lib/data/models/serializers.dart | 1 + .../repositories/settings_repository.dart | 9 +- 4 files changed, 154 insertions(+), 5 deletions(-) diff --git a/lib/data/models/company_model.dart b/lib/data/models/company_model.dart index 18ece7fcb..5a3500861 100644 --- a/lib/data/models/company_model.dart +++ b/lib/data/models/company_model.dart @@ -649,3 +649,16 @@ abstract class SettingsEntity static Serializer get serializer => _$settingsEntitySerializer; } + +abstract class UserItemResponse + implements Built { + factory UserItemResponse([void updates(UserItemResponseBuilder b)]) = + _$UserItemResponse; + + UserItemResponse._(); + + UserEntity get data; + + static Serializer get serializer => + _$userItemResponseSerializer; +} diff --git a/lib/data/models/company_model.g.dart b/lib/data/models/company_model.g.dart index 83cb00fff..f7f2d5f2f 100644 --- a/lib/data/models/company_model.g.dart +++ b/lib/data/models/company_model.g.dart @@ -18,6 +18,8 @@ Serializer _$userCompanyEntitySerializer = Serializer _$tokenEntitySerializer = new _$TokenEntitySerializer(); Serializer _$settingsEntitySerializer = new _$SettingsEntitySerializer(); +Serializer _$userItemResponseSerializer = + new _$UserItemResponseSerializer(); class _$CompanyEntitySerializer implements StructuredSerializer { @override @@ -1100,6 +1102,48 @@ class _$SettingsEntitySerializer } } +class _$UserItemResponseSerializer + implements StructuredSerializer { + @override + final Iterable types = const [UserItemResponse, _$UserItemResponse]; + @override + final String wireName = 'UserItemResponse'; + + @override + Iterable serialize(Serializers serializers, UserItemResponse object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'data', + serializers.serialize(object.data, + specifiedType: const FullType(UserEntity)), + ]; + + return result; + } + + @override + UserItemResponse deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new UserItemResponseBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current as String; + iterator.moveNext(); + final dynamic value = iterator.current; + switch (key) { + case 'data': + result.data.replace(serializers.deserialize(value, + specifiedType: const FullType(UserEntity)) as UserEntity); + break; + } + } + + return result.build(); + } +} + class _$CompanyEntity extends CompanyEntity { @override final String id; @@ -3033,4 +3077,96 @@ class SettingsEntityBuilder } } +class _$UserItemResponse extends UserItemResponse { + @override + final UserEntity data; + + factory _$UserItemResponse( + [void Function(UserItemResponseBuilder) updates]) => + (new UserItemResponseBuilder()..update(updates)).build(); + + _$UserItemResponse._({this.data}) : super._() { + if (data == null) { + throw new BuiltValueNullFieldError('UserItemResponse', 'data'); + } + } + + @override + UserItemResponse rebuild(void Function(UserItemResponseBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + UserItemResponseBuilder toBuilder() => + new UserItemResponseBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is UserItemResponse && data == other.data; + } + + @override + int get hashCode { + return $jf($jc(0, data.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper('UserItemResponse')..add('data', data)) + .toString(); + } +} + +class UserItemResponseBuilder + implements Builder { + _$UserItemResponse _$v; + + UserEntityBuilder _data; + UserEntityBuilder get data => _$this._data ??= new UserEntityBuilder(); + set data(UserEntityBuilder data) => _$this._data = data; + + UserItemResponseBuilder(); + + UserItemResponseBuilder get _$this { + if (_$v != null) { + _data = _$v.data?.toBuilder(); + _$v = null; + } + return this; + } + + @override + void replace(UserItemResponse other) { + if (other == null) { + throw new ArgumentError.notNull('other'); + } + _$v = other as _$UserItemResponse; + } + + @override + void update(void Function(UserItemResponseBuilder) updates) { + if (updates != null) updates(this); + } + + @override + _$UserItemResponse build() { + _$UserItemResponse _$result; + try { + _$result = _$v ?? new _$UserItemResponse._(data: data.build()); + } catch (_) { + String _$failedField; + try { + _$failedField = 'data'; + data.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + 'UserItemResponse', _$failedField, e.toString()); + } + rethrow; + } + replace(_$result); + return _$result; + } +} + // ignore_for_file: always_put_control_body_on_new_line,always_specify_types,annotate_overrides,avoid_annotating_with_dynamic,avoid_as,avoid_catches_without_on_clauses,avoid_returning_this,lines_longer_than_80_chars,omit_local_variable_types,prefer_expression_function_bodies,sort_constructors_first,test_types_in_equals,unnecessary_const,unnecessary_new diff --git a/lib/data/models/serializers.dart b/lib/data/models/serializers.dart index be161e2a4..51406f1b8 100644 --- a/lib/data/models/serializers.dart +++ b/lib/data/models/serializers.dart @@ -36,6 +36,7 @@ part 'serializers.g.dart'; @SerializersFor(const [ AppState, LoginResponse, + UserItemResponse, DashboardResponse, ProductListResponse, ProductItemResponse, diff --git a/lib/data/repositories/settings_repository.dart b/lib/data/repositories/settings_repository.dart index bd6a2e5c1..58d7edff7 100644 --- a/lib/data/repositories/settings_repository.dart +++ b/lib/data/repositories/settings_repository.dart @@ -30,17 +30,16 @@ class SettingsRepository { return clientResponse; } - Future saveUser( - Credentials credentials, UserEntity user) async { + Future saveUser(Credentials credentials, UserEntity user) async { final data = serializers.serializeWith(UserEntity.serializer, user); dynamic response; final url = credentials.url + '/users/${user.id}'; response = await webClient.put(url, credentials.token, json.encode(data)); - final LoginResponse clientResponse = - serializers.deserializeWith(LoginResponse.serializer, response); + final UserItemResponse userResponse = + serializers.deserializeWith(UserItemResponse.serializer, response); - return clientResponse; + return userResponse.data; } }