mirror of
https://github.com/go-vikunja/app
synced 2024-06-06 04:29:47 +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(),
|
||||
description: 'A descriptive task',
|
||||
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/bucket.dart';
|
||||
|
||||
import '../models/project.dart';
|
||||
import '../models/server.dart';
|
||||
|
||||
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 {
|
||||
Future<List<Namespace>?> getAll();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user