Kanban
This commit is contained in:
parent
98d26a16f2
commit
dec4bc63e0
|
|
@ -171,7 +171,6 @@ part 'serializers.g.dart';
|
||||||
ImportRequest,
|
ImportRequest,
|
||||||
ImportRequestMapping,
|
ImportRequestMapping,
|
||||||
UserTwoFactorResponse,
|
UserTwoFactorResponse,
|
||||||
KanbanResponse,
|
|
||||||
])
|
])
|
||||||
final Serializers serializers =
|
final Serializers serializers =
|
||||||
(_$serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
|
(_$serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();
|
||||||
|
|
|
||||||
|
|
@ -102,8 +102,6 @@ Serializers _$serializers = (new Serializers().toBuilder()
|
||||||
..add(InvoiceState.serializer)
|
..add(InvoiceState.serializer)
|
||||||
..add(InvoiceStatusEntity.serializer)
|
..add(InvoiceStatusEntity.serializer)
|
||||||
..add(InvoiceUIState.serializer)
|
..add(InvoiceUIState.serializer)
|
||||||
..add(KanbanResponse.serializer)
|
|
||||||
..add(KanbanResponseData.serializer)
|
|
||||||
..add(LanguageEntity.serializer)
|
..add(LanguageEntity.serializer)
|
||||||
..add(LanguageItemResponse.serializer)
|
..add(LanguageItemResponse.serializer)
|
||||||
..add(LanguageListResponse.serializer)
|
..add(LanguageListResponse.serializer)
|
||||||
|
|
|
||||||
|
|
@ -47,44 +47,6 @@ abstract class TaskItemResponse
|
||||||
_$taskItemResponseSerializer;
|
_$taskItemResponseSerializer;
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class KanbanResponse
|
|
||||||
implements Built<KanbanResponse, KanbanResponseBuilder> {
|
|
||||||
factory KanbanResponse([void updates(KanbanResponseBuilder b)]) =
|
|
||||||
_$KanbanResponse;
|
|
||||||
|
|
||||||
KanbanResponse._();
|
|
||||||
|
|
||||||
@override
|
|
||||||
@memoized
|
|
||||||
int get hashCode;
|
|
||||||
|
|
||||||
KanbanResponseData get data;
|
|
||||||
|
|
||||||
static Serializer<KanbanResponse> get serializer =>
|
|
||||||
_$kanbanResponseSerializer;
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract class KanbanResponseData
|
|
||||||
implements Built<KanbanResponseData, KanbanResponseDataBuilder> {
|
|
||||||
factory KanbanResponseData([void updates(KanbanResponseDataBuilder b)]) =
|
|
||||||
_$KanbanResponseData;
|
|
||||||
|
|
||||||
KanbanResponseData._();
|
|
||||||
|
|
||||||
@override
|
|
||||||
@memoized
|
|
||||||
int get hashCode;
|
|
||||||
|
|
||||||
@BuiltValueField(wireName: 'status_ids')
|
|
||||||
BuiltList<String> get statusIds;
|
|
||||||
|
|
||||||
@BuiltValueField(wireName: 'task_ids')
|
|
||||||
BuiltMap<String, BuiltList<String>> get taskIds;
|
|
||||||
|
|
||||||
static Serializer<KanbanResponseData> get serializer =>
|
|
||||||
_$kanbanResponseDataSerializer;
|
|
||||||
}
|
|
||||||
|
|
||||||
class TaskFields {
|
class TaskFields {
|
||||||
static const String number = 'number';
|
static const String number = 'number';
|
||||||
static const String rate = 'rate';
|
static const String rate = 'rate';
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,6 @@ Serializer<TaskListResponse> _$taskListResponseSerializer =
|
||||||
new _$TaskListResponseSerializer();
|
new _$TaskListResponseSerializer();
|
||||||
Serializer<TaskItemResponse> _$taskItemResponseSerializer =
|
Serializer<TaskItemResponse> _$taskItemResponseSerializer =
|
||||||
new _$TaskItemResponseSerializer();
|
new _$TaskItemResponseSerializer();
|
||||||
Serializer<KanbanResponse> _$kanbanResponseSerializer =
|
|
||||||
new _$KanbanResponseSerializer();
|
|
||||||
Serializer<KanbanResponseData> _$kanbanResponseDataSerializer =
|
|
||||||
new _$KanbanResponseDataSerializer();
|
|
||||||
Serializer<TaskTime> _$taskTimeSerializer = new _$TaskTimeSerializer();
|
Serializer<TaskTime> _$taskTimeSerializer = new _$TaskTimeSerializer();
|
||||||
Serializer<TaskEntity> _$taskEntitySerializer = new _$TaskEntitySerializer();
|
Serializer<TaskEntity> _$taskEntitySerializer = new _$TaskEntitySerializer();
|
||||||
|
|
||||||
|
|
@ -104,107 +100,6 @@ class _$TaskItemResponseSerializer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class _$KanbanResponseSerializer
|
|
||||||
implements StructuredSerializer<KanbanResponse> {
|
|
||||||
@override
|
|
||||||
final Iterable<Type> types = const [KanbanResponse, _$KanbanResponse];
|
|
||||||
@override
|
|
||||||
final String wireName = 'KanbanResponse';
|
|
||||||
|
|
||||||
@override
|
|
||||||
Iterable<Object> serialize(Serializers serializers, KanbanResponse object,
|
|
||||||
{FullType specifiedType = FullType.unspecified}) {
|
|
||||||
final result = <Object>[
|
|
||||||
'data',
|
|
||||||
serializers.serialize(object.data,
|
|
||||||
specifiedType: const FullType(KanbanResponseData)),
|
|
||||||
];
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
KanbanResponse deserialize(
|
|
||||||
Serializers serializers, Iterable<Object> serialized,
|
|
||||||
{FullType specifiedType = FullType.unspecified}) {
|
|
||||||
final result = new KanbanResponseBuilder();
|
|
||||||
|
|
||||||
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(KanbanResponseData))
|
|
||||||
as KanbanResponseData);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result.build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class _$KanbanResponseDataSerializer
|
|
||||||
implements StructuredSerializer<KanbanResponseData> {
|
|
||||||
@override
|
|
||||||
final Iterable<Type> types = const [KanbanResponseData, _$KanbanResponseData];
|
|
||||||
@override
|
|
||||||
final String wireName = 'KanbanResponseData';
|
|
||||||
|
|
||||||
@override
|
|
||||||
Iterable<Object> serialize(Serializers serializers, KanbanResponseData object,
|
|
||||||
{FullType specifiedType = FullType.unspecified}) {
|
|
||||||
final result = <Object>[
|
|
||||||
'status_ids',
|
|
||||||
serializers.serialize(object.statusIds,
|
|
||||||
specifiedType:
|
|
||||||
const FullType(BuiltList, const [const FullType(String)])),
|
|
||||||
'task_ids',
|
|
||||||
serializers.serialize(object.taskIds,
|
|
||||||
specifiedType: const FullType(BuiltMap, const [
|
|
||||||
const FullType(String),
|
|
||||||
const FullType(BuiltList, const [const FullType(String)])
|
|
||||||
])),
|
|
||||||
];
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
KanbanResponseData deserialize(
|
|
||||||
Serializers serializers, Iterable<Object> serialized,
|
|
||||||
{FullType specifiedType = FullType.unspecified}) {
|
|
||||||
final result = new KanbanResponseDataBuilder();
|
|
||||||
|
|
||||||
final iterator = serialized.iterator;
|
|
||||||
while (iterator.moveNext()) {
|
|
||||||
final key = iterator.current as String;
|
|
||||||
iterator.moveNext();
|
|
||||||
final dynamic value = iterator.current;
|
|
||||||
switch (key) {
|
|
||||||
case 'status_ids':
|
|
||||||
result.statusIds.replace(serializers.deserialize(value,
|
|
||||||
specifiedType:
|
|
||||||
const FullType(BuiltList, const [const FullType(String)]))
|
|
||||||
as BuiltList<Object>);
|
|
||||||
break;
|
|
||||||
case 'task_ids':
|
|
||||||
result.taskIds.replace(serializers.deserialize(value,
|
|
||||||
specifiedType: const FullType(BuiltMap, const [
|
|
||||||
const FullType(String),
|
|
||||||
const FullType(BuiltList, const [const FullType(String)])
|
|
||||||
])));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result.build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class _$TaskTimeSerializer implements StructuredSerializer<TaskTime> {
|
class _$TaskTimeSerializer implements StructuredSerializer<TaskTime> {
|
||||||
@override
|
@override
|
||||||
final Iterable<Type> types = const [TaskTime, _$TaskTime];
|
final Iterable<Type> types = const [TaskTime, _$TaskTime];
|
||||||
|
|
@ -662,215 +557,6 @@ class TaskItemResponseBuilder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class _$KanbanResponse extends KanbanResponse {
|
|
||||||
@override
|
|
||||||
final KanbanResponseData data;
|
|
||||||
|
|
||||||
factory _$KanbanResponse([void Function(KanbanResponseBuilder) updates]) =>
|
|
||||||
(new KanbanResponseBuilder()..update(updates)).build();
|
|
||||||
|
|
||||||
_$KanbanResponse._({this.data}) : super._() {
|
|
||||||
if (data == null) {
|
|
||||||
throw new BuiltValueNullFieldError('KanbanResponse', 'data');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
KanbanResponse rebuild(void Function(KanbanResponseBuilder) updates) =>
|
|
||||||
(toBuilder()..update(updates)).build();
|
|
||||||
|
|
||||||
@override
|
|
||||||
KanbanResponseBuilder toBuilder() =>
|
|
||||||
new KanbanResponseBuilder()..replace(this);
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) {
|
|
||||||
if (identical(other, this)) return true;
|
|
||||||
return other is KanbanResponse && data == other.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
int __hashCode;
|
|
||||||
@override
|
|
||||||
int get hashCode {
|
|
||||||
return __hashCode ??= $jf($jc(0, data.hashCode));
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return (newBuiltValueToStringHelper('KanbanResponse')..add('data', data))
|
|
||||||
.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class KanbanResponseBuilder
|
|
||||||
implements Builder<KanbanResponse, KanbanResponseBuilder> {
|
|
||||||
_$KanbanResponse _$v;
|
|
||||||
|
|
||||||
KanbanResponseDataBuilder _data;
|
|
||||||
KanbanResponseDataBuilder get data =>
|
|
||||||
_$this._data ??= new KanbanResponseDataBuilder();
|
|
||||||
set data(KanbanResponseDataBuilder data) => _$this._data = data;
|
|
||||||
|
|
||||||
KanbanResponseBuilder();
|
|
||||||
|
|
||||||
KanbanResponseBuilder get _$this {
|
|
||||||
if (_$v != null) {
|
|
||||||
_data = _$v.data?.toBuilder();
|
|
||||||
_$v = null;
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void replace(KanbanResponse other) {
|
|
||||||
if (other == null) {
|
|
||||||
throw new ArgumentError.notNull('other');
|
|
||||||
}
|
|
||||||
_$v = other as _$KanbanResponse;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void update(void Function(KanbanResponseBuilder) updates) {
|
|
||||||
if (updates != null) updates(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
_$KanbanResponse build() {
|
|
||||||
_$KanbanResponse _$result;
|
|
||||||
try {
|
|
||||||
_$result = _$v ?? new _$KanbanResponse._(data: data.build());
|
|
||||||
} catch (_) {
|
|
||||||
String _$failedField;
|
|
||||||
try {
|
|
||||||
_$failedField = 'data';
|
|
||||||
data.build();
|
|
||||||
} catch (e) {
|
|
||||||
throw new BuiltValueNestedFieldError(
|
|
||||||
'KanbanResponse', _$failedField, e.toString());
|
|
||||||
}
|
|
||||||
rethrow;
|
|
||||||
}
|
|
||||||
replace(_$result);
|
|
||||||
return _$result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class _$KanbanResponseData extends KanbanResponseData {
|
|
||||||
@override
|
|
||||||
final BuiltList<String> statusIds;
|
|
||||||
@override
|
|
||||||
final BuiltMap<String, BuiltList<String>> taskIds;
|
|
||||||
|
|
||||||
factory _$KanbanResponseData(
|
|
||||||
[void Function(KanbanResponseDataBuilder) updates]) =>
|
|
||||||
(new KanbanResponseDataBuilder()..update(updates)).build();
|
|
||||||
|
|
||||||
_$KanbanResponseData._({this.statusIds, this.taskIds}) : super._() {
|
|
||||||
if (statusIds == null) {
|
|
||||||
throw new BuiltValueNullFieldError('KanbanResponseData', 'statusIds');
|
|
||||||
}
|
|
||||||
if (taskIds == null) {
|
|
||||||
throw new BuiltValueNullFieldError('KanbanResponseData', 'taskIds');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
KanbanResponseData rebuild(
|
|
||||||
void Function(KanbanResponseDataBuilder) updates) =>
|
|
||||||
(toBuilder()..update(updates)).build();
|
|
||||||
|
|
||||||
@override
|
|
||||||
KanbanResponseDataBuilder toBuilder() =>
|
|
||||||
new KanbanResponseDataBuilder()..replace(this);
|
|
||||||
|
|
||||||
@override
|
|
||||||
bool operator ==(Object other) {
|
|
||||||
if (identical(other, this)) return true;
|
|
||||||
return other is KanbanResponseData &&
|
|
||||||
statusIds == other.statusIds &&
|
|
||||||
taskIds == other.taskIds;
|
|
||||||
}
|
|
||||||
|
|
||||||
int __hashCode;
|
|
||||||
@override
|
|
||||||
int get hashCode {
|
|
||||||
return __hashCode ??=
|
|
||||||
$jf($jc($jc(0, statusIds.hashCode), taskIds.hashCode));
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return (newBuiltValueToStringHelper('KanbanResponseData')
|
|
||||||
..add('statusIds', statusIds)
|
|
||||||
..add('taskIds', taskIds))
|
|
||||||
.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class KanbanResponseDataBuilder
|
|
||||||
implements Builder<KanbanResponseData, KanbanResponseDataBuilder> {
|
|
||||||
_$KanbanResponseData _$v;
|
|
||||||
|
|
||||||
ListBuilder<String> _statusIds;
|
|
||||||
ListBuilder<String> get statusIds =>
|
|
||||||
_$this._statusIds ??= new ListBuilder<String>();
|
|
||||||
set statusIds(ListBuilder<String> statusIds) => _$this._statusIds = statusIds;
|
|
||||||
|
|
||||||
MapBuilder<String, BuiltList<String>> _taskIds;
|
|
||||||
MapBuilder<String, BuiltList<String>> get taskIds =>
|
|
||||||
_$this._taskIds ??= new MapBuilder<String, BuiltList<String>>();
|
|
||||||
set taskIds(MapBuilder<String, BuiltList<String>> taskIds) =>
|
|
||||||
_$this._taskIds = taskIds;
|
|
||||||
|
|
||||||
KanbanResponseDataBuilder();
|
|
||||||
|
|
||||||
KanbanResponseDataBuilder get _$this {
|
|
||||||
if (_$v != null) {
|
|
||||||
_statusIds = _$v.statusIds?.toBuilder();
|
|
||||||
_taskIds = _$v.taskIds?.toBuilder();
|
|
||||||
_$v = null;
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void replace(KanbanResponseData other) {
|
|
||||||
if (other == null) {
|
|
||||||
throw new ArgumentError.notNull('other');
|
|
||||||
}
|
|
||||||
_$v = other as _$KanbanResponseData;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void update(void Function(KanbanResponseDataBuilder) updates) {
|
|
||||||
if (updates != null) updates(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
_$KanbanResponseData build() {
|
|
||||||
_$KanbanResponseData _$result;
|
|
||||||
try {
|
|
||||||
_$result = _$v ??
|
|
||||||
new _$KanbanResponseData._(
|
|
||||||
statusIds: statusIds.build(), taskIds: taskIds.build());
|
|
||||||
} catch (_) {
|
|
||||||
String _$failedField;
|
|
||||||
try {
|
|
||||||
_$failedField = 'statusIds';
|
|
||||||
statusIds.build();
|
|
||||||
_$failedField = 'taskIds';
|
|
||||||
taskIds.build();
|
|
||||||
} catch (e) {
|
|
||||||
throw new BuiltValueNestedFieldError(
|
|
||||||
'KanbanResponseData', _$failedField, e.toString());
|
|
||||||
}
|
|
||||||
rethrow;
|
|
||||||
}
|
|
||||||
replace(_$result);
|
|
||||||
return _$result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class _$TaskTime extends TaskTime {
|
class _$TaskTime extends TaskTime {
|
||||||
@override
|
@override
|
||||||
final DateTime startDate;
|
final DateTime startDate;
|
||||||
|
|
|
||||||
|
|
@ -52,19 +52,14 @@ class TaskRepository {
|
||||||
return taskResponse.data.toList();
|
return taskResponse.data.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<KanbanResponseData> sortTasks(Credentials credentials,
|
Future<bool> sortTasks(Credentials credentials, List<String> statusIds,
|
||||||
List<String> statusIds, Map<String, List<String>> taskIds) async {
|
Map<String, List<String>> taskIds) async {
|
||||||
final url = credentials.url + '/tasks/sort';
|
final url = credentials.url + '/tasks/sort';
|
||||||
|
|
||||||
final dynamic response = await webClient.post(url, credentials.token,
|
final dynamic response = await webClient.post(url, credentials.token,
|
||||||
data: json.encode({'status_ids': statusIds, 'task_ids': taskIds}));
|
data: json.encode({'status_ids': statusIds, 'task_ids': taskIds}));
|
||||||
|
|
||||||
return null;
|
return true;
|
||||||
|
|
||||||
final KanbanResponse taskResponse =
|
|
||||||
serializers.deserializeWith(KanbanResponse.serializer, response);
|
|
||||||
|
|
||||||
return taskResponse.data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<TaskEntity> saveData(Credentials credentials, TaskEntity task) async {
|
Future<TaskEntity> saveData(Credentials credentials, TaskEntity task) async {
|
||||||
|
|
|
||||||
|
|
@ -239,9 +239,10 @@ class SortTasksRequest implements StartSaving {
|
||||||
}
|
}
|
||||||
|
|
||||||
class SortTasksSuccess implements StopSaving, PersistData {
|
class SortTasksSuccess implements StopSaving, PersistData {
|
||||||
SortTasksSuccess(this.data);
|
SortTasksSuccess({this.statusIds, this.taskIds});
|
||||||
|
|
||||||
final KanbanResponseData data;
|
final List<String> statusIds;
|
||||||
|
final Map<String, List<String>> taskIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
class SortTasksFailure implements StopSaving {
|
class SortTasksFailure implements StopSaving {
|
||||||
|
|
|
||||||
|
|
@ -272,9 +272,11 @@ Middleware<AppState> _sortTasks(TaskRepository repository) {
|
||||||
|
|
||||||
repository
|
repository
|
||||||
.sortTasks(store.state.credentials, action.statusIds, action.taskIds)
|
.sortTasks(store.state.credentials, action.statusIds, action.taskIds)
|
||||||
.then((KanbanResponseData data) {
|
.then((_) {
|
||||||
print('## DONE: $data');
|
store.dispatch(SortTasksSuccess(
|
||||||
store.dispatch(SortTasksSuccess(data));
|
statusIds: action.statusIds,
|
||||||
|
taskIds: action.taskIds,
|
||||||
|
));
|
||||||
if (action.completer != null) {
|
if (action.completer != null) {
|
||||||
action.completer.complete(null);
|
action.completer.complete(null);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue