Guest User

SetDoctorDatabase Class

a guest
Oct 10th, 2023
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 2.40 KB | None | 0 0
  1. import 'package:appwrite/appwrite.dart';
  2. import 'package:flutter/foundation.dart';
  3. import 'package:medify/src/backend/appwrite_service.dart';
  4. import 'package:medify/src/features/doctor/model/doctor_model.dart';
  5.  
  6. class SetDoctorDatabase {
  7.   static const _doctorListDatabaseId = '64133886e2e9c52b212f';
  8.   static const _doctorListCollectionId = '64133892b1b6ce54ffe7';
  9.  
  10.   Future<DoctorModel> addDoctorInDatabase(DoctorModel doctor) async {
  11.     try {
  12.       final result = await databases.createDocument(
  13.           databaseId: _doctorListDatabaseId,
  14.           collectionId: _doctorListCollectionId,
  15.           documentId: ID.unique(),
  16.           data: doctor.toMap());
  17.       return doctor.copyWith(documentId: result.$id);
  18.     } catch (e) {
  19.       if (kDebugMode) print('deleteDoctorInDatabase(): $e');
  20.       rethrow;
  21.     }
  22.   }
  23.  
  24.   Future<bool> deleteDoctorInDatabase(DoctorModel doctor) async {
  25.     try {
  26.       await databases.deleteDocument(
  27.         databaseId: _doctorListDatabaseId,
  28.         collectionId: _doctorListCollectionId,
  29.         documentId: doctor.documentId,
  30.       );
  31.       return true;
  32.     } catch (e) {
  33.       if (kDebugMode) print('deleteDoctorInDatabase(): $e');
  34.       rethrow;
  35.     }
  36.   }
  37.  
  38.   Future<DoctorModel> updateDoctorInDatabase(DoctorModel doctor) async {
  39.     try {
  40.       await databases.updateDocument(
  41.           databaseId: _doctorListDatabaseId,
  42.           collectionId: _doctorListCollectionId,
  43.           documentId: doctor.documentId,
  44.           data: doctor.toMap());
  45.       return doctor;
  46.     } catch (e) {
  47.       if (kDebugMode) print('deleteDoctorInDatabase(): $e');
  48.       rethrow;
  49.     }
  50.   }
  51.  
  52.   RealtimeSubscription getDoctorRealtimeSubscription(String doctorDocumentId) {
  53.     try {
  54.       return realtime.subscribe([
  55.         'databases.$_doctorListDatabaseId.collections.$_doctorListCollectionId.documents.$doctorDocumentId'
  56.       ]);
  57.     } catch (e) {
  58.       if (kDebugMode) print('getDoctorRealtimeSubscription: $e');
  59.       rethrow;
  60.     }
  61.   }
  62.  
  63.   Future<DoctorModel> getDoctorFromDb(String doctorDocumentId) async {
  64.     try {
  65.       final document = await databases.getDocument(
  66.           databaseId: _doctorListDatabaseId,
  67.           collectionId: _doctorListCollectionId,
  68.           documentId: doctorDocumentId);
  69.       return DoctorModel.fromMap(document.data);
  70.     } catch (e) {
  71.       if (kDebugMode) print('getDoctorFromDb(): $e');
  72.       rethrow;
  73.     }
  74.   }
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment