mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-28 18:03:14 +08:00
Move some classes into another folder
Just giving some more structure
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
@ -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();
|
||||
|
@ -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;
|
13
lib/storage/notes_repository.dart
Normal file
13
lib/storage/notes_repository.dart
Normal 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();
|
||||
}
|
Reference in New Issue
Block a user