Move some classes into another folder

Just giving some more structure
This commit is contained in:
Vishesh Handa
2018-06-03 19:49:34 +02:00
parent 9d19ee4c14
commit 2082bea8ac
5 changed files with 20 additions and 83 deletions

View File

@ -1,76 +0,0 @@
import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:journal/file_storage.dart';
import 'package:journal/note.dart';
import 'package:journal/serializers.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
abstract class NoteRepository {
// Syncs the repo
// - git pull with an auto merge
// - git push
// TODO: Better error message!
Future<bool> sync();
Future<bool> addNote(Note note);
Future<bool> updateNote(Note note);
Future<bool> removeNote(Note note);
Future<List<Note>> listNotes();
}
Future<Directory> getNotesDir() async {
var appDir = await getApplicationDocumentsDirectory();
var dir = new Directory(p.join(appDir.path, "notes"));
await dir.create();
return dir;
}
class GitNoteRepository implements NoteRepository {
FileStorage _fileStorage = new FileStorage(
getDirectory: getNotesDir,
noteSerializer: new MarkdownYAMLSerializer(),
fileNameGenerator: (Note note) => note.id,
);
final String gitUrl;
final String dirPath;
GitNoteRepository({
@required this.gitUrl,
@required this.dirPath,
}) {
// FIXME: This isn't correct. The gitUrl might not be cloned at this point!
}
@override
Future<bool> addNote(Note note) async {
return _fileStorage.addNote(note);
}
@override
Future<List<Note>> listNotes() {
return _fileStorage.listNotes();
}
@override
Future<bool> removeNote(Note note) async {
return _fileStorage.removeNote(note);
}
@override
Future<bool> sync() async {
return false;
}
@override
Future<bool> updateNote(Note note) async {
return _fileStorage.updateNote(note);
}
}

View File

@ -3,14 +3,14 @@ import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:journal/notes_repository.dart';
import 'package:journal/serializers.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart' as p;
import 'package:uuid/uuid.dart';
import 'package:journal/note.dart';
import 'package:journal/file_storage.dart';
import 'package:journal/storage/serializers.dart';
import 'package:journal/storage/notes_repository.dart';
import 'package:journal/storage/file_storage.dart';
Future<Directory> getNotesDir() async {
var appDir = await getApplicationDocumentsDirectory();

View File

@ -2,14 +2,14 @@ import 'dart:async';
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:journal/notes_repository.dart';
import 'package:journal/serializers.dart';
import 'package:journal/note.dart';
import 'package:journal/storage/notes_repository.dart';
import 'package:journal/storage/serializers.dart';
import 'package:path/path.dart' as p;
import './note.dart';
typedef String NoteFileNameGenerator(Note note);
/// Each Note is saved in a different file
class FileStorage implements NoteRepository {
final Future<Directory> Function() getDirectory;
final NoteSerializer noteSerializer;

View File

@ -0,0 +1,13 @@
import 'dart:async';
import 'package:journal/note.dart';
abstract class NoteRepository {
// TODO: Better error message!
Future<bool> sync();
Future<bool> addNote(Note note);
Future<bool> updateNote(Note note);
Future<bool> removeNote(Note note);
Future<List<Note>> listNotes();
}