mirror of
https://github.com/go-vikunja/app
synced 2024-06-12 23:52:08 +00:00
added basic project classes
This commit is contained in:
parent
2a7a8755af
commit
16fa80f8df
41
lib/api/project.dart
Normal file
41
lib/api/project.dart
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import 'package:vikunja_app/api/service.dart';
|
||||||
|
import 'package:vikunja_app/models/project.dart';
|
||||||
|
import 'package:vikunja_app/service/services.dart';
|
||||||
|
|
||||||
|
class ProjectAPIService extends APIService implements ProjectService {
|
||||||
|
ProjectAPIService(super.client);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Project?> create(Project p) {
|
||||||
|
// TODO: implement create
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future delete(int projectId) {
|
||||||
|
// TODO: implement delete
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Project?> get(int projectId) {
|
||||||
|
// TODO: implement get
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<List<Project>?> getAll() {
|
||||||
|
// TODO: implement getAll
|
||||||
|
return client.get('/projects').then((response) {
|
||||||
|
if (response == null) return null;
|
||||||
|
return convertList(response.body, (result) => Project.fromJson(result));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<Project?> update(int projectId) {
|
||||||
|
// TODO: implement update
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
40
lib/models/project.dart
Normal file
40
lib/models/project.dart
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
import 'package:vikunja_app/models/user.dart';
|
||||||
|
|
||||||
|
class Project {
|
||||||
|
final int id;
|
||||||
|
final User? owner;
|
||||||
|
final int parentProjectId;
|
||||||
|
final String description;
|
||||||
|
final String title;
|
||||||
|
final DateTime created, updated;
|
||||||
|
|
||||||
|
Project(
|
||||||
|
{this.id = 0,
|
||||||
|
this.owner,
|
||||||
|
this.parentProjectId = 0,
|
||||||
|
this.description = '',
|
||||||
|
required this.title,
|
||||||
|
created,
|
||||||
|
updated}) :
|
||||||
|
this.created = created ?? DateTime.now(),
|
||||||
|
this.updated = updated ?? DateTime.now();
|
||||||
|
|
||||||
|
Project.fromJson(Map<String, dynamic> json)
|
||||||
|
: title = json['title'],
|
||||||
|
description = json['description'],
|
||||||
|
id = json['id'],
|
||||||
|
parentProjectId = json['parent_project_id'],
|
||||||
|
created = DateTime.parse(json['created']),
|
||||||
|
updated = DateTime.parse(json['updated']),
|
||||||
|
owner = json['owner'] != null ? User.fromJson(json['owner']) : null;
|
||||||
|
|
||||||
|
Map<String, dynamic> toJSON() => {
|
||||||
|
'id': id,
|
||||||
|
'created': created.toUtc().toIso8601String(),
|
||||||
|
'updated': updated.toUtc().toIso8601String(),
|
||||||
|
'title': title,
|
||||||
|
'owner': owner?.toJSON(),
|
||||||
|
'description': description,
|
||||||
|
'parent_project_id': parentProjectId
|
||||||
|
};
|
||||||
|
}
|
|
@ -46,7 +46,7 @@ var _tasks = {
|
||||||
created: DateTime.now(),
|
created: DateTime.now(),
|
||||||
description: 'A descriptive task',
|
description: 'A descriptive task',
|
||||||
done: false,
|
done: false,
|
||||||
listId: 1,
|
projectId: 1,
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import 'package:vikunja_app/models/task.dart';
|
||||||
import 'package:vikunja_app/models/user.dart';
|
import 'package:vikunja_app/models/user.dart';
|
||||||
import 'package:vikunja_app/models/bucket.dart';
|
import 'package:vikunja_app/models/bucket.dart';
|
||||||
|
|
||||||
|
import '../models/project.dart';
|
||||||
import '../models/server.dart';
|
import '../models/server.dart';
|
||||||
|
|
||||||
enum TaskServiceOptionSortBy {
|
enum TaskServiceOptionSortBy {
|
||||||
|
@ -128,6 +129,16 @@ class TaskServiceOptions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abstract class ProjectService {
|
||||||
|
Future<List<Project>?> getAll();
|
||||||
|
|
||||||
|
Future<Project?> get(int projectId);
|
||||||
|
Future<Project?> create(Project p);
|
||||||
|
Future<Project?> update(int projectId);
|
||||||
|
Future delete(int projectId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
abstract class NamespaceService {
|
abstract class NamespaceService {
|
||||||
Future<List<Namespace>?> getAll();
|
Future<List<Namespace>?> getAll();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user