Files
progetto-m335-flutter/lib/database/FireDb.dart
2023-09-29 09:40:35 +02:00

168 lines
4.6 KiB
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:progetto_m335_flutter/model/promemoria.dart';
import 'package:progetto_m335_flutter/model/note.dart';
class FireDb {
Future createPromemoria(Promemoria promemoria) async {
final docPromemoria =
FirebaseFirestore.instance.collection('promemoria').doc();
final json = {
'id': docPromemoria.id,
'title': promemoria.getTitle(),
'creationDate': promemoria.getCreationDate(),
'lastModificationDate': promemoria.getLastModificationDate(),
'expirationDate': promemoria.getExpirationDate(),
'arrayPromemoria': promemoria.getArrayPromemoria(),
'description': promemoria.getDescription(),
'priority': promemoria.getPriority(),
'color': promemoria.getColor(),
};
await docPromemoria.set(json);
}
Future createAllPromemoria(List<Promemoria> promemorias) async {
for (var promemoria in promemorias) {
await createPromemoria(promemoria);
}
}
Future createNote(Note note) async {
final docNote = FirebaseFirestore.instance.collection('note').doc();
final json = {
'id': docNote.id,
'title': note.getTitle(),
'creationDate': note.getCreationDate(),
'lastModificationDate': note.getLastModificationDate(),
'arrayPromemoria': note.getArrayPromemoria(),
'description': note.getDescription(),
};
await docNote.set(json);
}
Future createAllNotes(List<Note> notes) async {
for (var note in notes) {
await createNote(note);
}
}
Future<List<Promemoria>> readAllPromemoria() async {
var promemorias =
await FirebaseFirestore.instance.collection('promemoria').get();
List<Promemoria> promemoriaList = [];
for (var promemoria in promemorias.docs) {
promemoriaList.add(Promemoria.fromJson(promemoria.data()));
}
return promemoriaList;
}
Future<List<Note>> readAllNotes() async {
var notes = await FirebaseFirestore.instance.collection('note').get();
List<Note> noteList = [];
for (var note in notes.docs) {
noteList.add(Note.fromJson(note.data()));
}
return noteList;
}
Future<Note?> readNoteById(String id) async {
var docNote = await FirebaseFirestore.instance.collection('note').doc(id);
final snapshot = await docNote.get();
if (snapshot.exists) {
return Note.fromJson(snapshot.data()!);
} else {
return null;
}
}
Future<Promemoria?> readPromemoriaById(String id) async {
final docPromemoria =
await FirebaseFirestore.instance.collection('promemoria').doc(id);
final snapshot = await docPromemoria.get();
if (snapshot.exists) {
return Promemoria.fromJson(snapshot.data()!);
} else {
return null;
}
}
/*
Future updateNote(Note note) async {
final docNote = FirebaseFirestore.instance.collection('note').doc(note.getId());
final json = {
'id': note.getId(),
'title': note.getTitle(),
'creationDate': note.getCreationDate(),
'lastModificationDate': note.getLastModificationDate(),
'arrayPromemoria': note.getArrayPromemoria(),
'description': note.getDescription(),
};
await docNote.update(json);
}
Future updatePromemoria(Promemoria promemoria) async {
final docPromemoria = FirebaseFirestore.instance.collection('promemoria').doc(promemoria.getId());
final json = {
'id': docPromemoria.id,
'title': promemoria.getTitle(),
'creationDate': promemoria.getCreationDate(),
'lastModificationDate': promemoria.getLastModificationDate(),
'expirationDate': promemoria.getExpirationDate(),
'arrayPromemoria': promemoria.getArrayPromemoria(),
'description': promemoria.getDescription(),
'priority': promemoria.getPriority(),
'color': promemoria.getColor(),
};
await docPromemoria.update(json);
}
*/
Future deleteNoteById(String id) async {
final docNote = FirebaseFirestore.instance.collection('note').doc(id);
await docNote.delete();
}
Future deletePromemoriaById(String id) async {
final docPromemoria = FirebaseFirestore.instance.collection('promemoria').doc(id);
await docPromemoria.delete();
}
Future deleteAllNotes() async {
var notes = await FirebaseFirestore.instance.collection('note').get();
for (var note in notes.docs) {
await deleteNoteById(note.id);
}
}
Future deleteAllPromemoria() async {
var promemorias = await FirebaseFirestore.instance.collection('promemoria').get();
for (var promemoria in promemorias.docs) {
await deletePromemoriaById(promemoria.id);
}
}
}