Skip to content

Commit

Permalink
Merge pull request #1 from 1nc1n3r470r/main
Browse files Browse the repository at this point in the history
Testing PR through CLI
  • Loading branch information
leeashlee authored Oct 5, 2023
2 parents 653a7f8 + 8707e15 commit e591926
Show file tree
Hide file tree
Showing 18 changed files with 318 additions and 458 deletions.
68 changes: 0 additions & 68 deletions lib/AppWrite/database_api.dart

This file was deleted.

37 changes: 27 additions & 10 deletions lib/AppWrite/auth_api.dart → lib/appwrite/auth_api.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
// ignore_for_file: always_declare_return_types
import 'dart:convert';

import 'package:appwrite/appwrite.dart';
import 'package:appwrite/models.dart';
import 'package:flutter/widgets.dart';
import 'package:noel_notes/component/constants.dart';
import 'package:encrypt/encrypt.dart' as crypto;

import 'constants.dart';

enum AuthStatus {
uninitialized,
Expand Down Expand Up @@ -33,15 +35,15 @@ class AuthAPI extends ChangeNotifier {
}

// Initialize the Appwrite client
init() {
void init() {
client
.setEndpoint(APPWRITE_URL)
.setProject(APPWRITE_PROJECT_ID)
.setSelfSigned();
account = Account(client);
}

loadUser() async {
void loadUser() async {
try {
final user = await account.get();
_status = AuthStatus.authenticated;
Expand Down Expand Up @@ -86,22 +88,22 @@ class AuthAPI extends ChangeNotifier {
}
}

updateEmail({
Future<User> updateEmail({
required String email,
required String password,
}) async {
return account.updateEmail(email: email, password: password);
}

updateName({required String name}) async {
Future<User> updateName({required String name}) async {
return account.updateName(name: name);
}

updatePassword({required String password}) async {
Future<User> updatePassword({required String password}) async {
return account.updatePassword(password: password);
}

signInWithProvider({required String provider}) async {
Future<dynamic> signInWithProvider({required String provider}) async {
try {
final session = await account.createOAuth2Session(provider: provider);
_currentUser = await account.get();
Expand All @@ -112,7 +114,7 @@ class AuthAPI extends ChangeNotifier {
}
}

signOut() async {
void signOut() async {
try {
await account.deleteSession(sessionId: 'current');
_status = AuthStatus.unauthenticated;
Expand All @@ -125,7 +127,22 @@ class AuthAPI extends ChangeNotifier {
return await account.getPrefs();
}

updatePreferences({required String bio}) async {
Future<User> updatePreferences({required String bio}) async {
return account.updatePrefs(prefs: {'bio': bio});
}

Future<String> initSalt() async {
var p = (await account.getPrefs()).data;
try {
if (base64Decode(p["salt"]).length != 32) {
// must be 32 bytes
throw Exception("Not 32 bytes");
}
} catch (e) {
// override corrupted salt (will probably corrupt remote data)
p["salt"] = crypto.Key.fromSecureRandom(32).base64;
account.updatePrefs(prefs: p);
}
return p["salt"];
}
}
4 changes: 1 addition & 3 deletions lib/component/constants.dart → lib/appwrite/constants.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
// ignore_for_file: constant_identifier_names

const String APPWRITE_PROJECT_ID = "65180b4ecc4e6f8eb1f9";
const String APPWRITE_URL = "https://cloud.appwrite.io/v1";

const String APPWRITE_DATABASE_ID = "6518198c77bf083a0d2c";
const String COLLECTION_NOTEENTRY = "65181a10dcdcc6e17d82";
const String COLLECTION_NOTEENTRY = "65181a10dcdcc6e17d82";
36 changes: 36 additions & 0 deletions lib/appwrite/database_api.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import 'package:appwrite/appwrite.dart';
import 'package:appwrite/models.dart';
import 'package:noel_notes/appwrite/auth_api.dart';
import 'package:noel_notes/appwrite/constants.dart';

class DatabaseAPI {
Client client = Client();
late final Account account;
late final Databases databases;
final AuthAPI auth = AuthAPI();

DatabaseAPI() {
init();
}

void init() {
client.setEndpoint(APPWRITE_URL).setProject(APPWRITE_PROJECT_ID);
account = Account(client);
databases = Databases(client);
}

Future<DocumentList> getNoteEntries() {
return databases.listDocuments(
databaseId: APPWRITE_DATABASE_ID,
collectionId: COLLECTION_NOTEENTRY,
);
}

Future<Document> updateNoteEntry(String data) {
return databases.updateDocument(
databaseId: APPWRITE_DATABASE_ID,
collectionId: COLLECTION_NOTEENTRY,
documentId: data,
);
}
}
10 changes: 4 additions & 6 deletions lib/component/custom_app_bar.dart
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
// ignore_for_file: always_declare_return_types

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:noel_notes/model/settings/manager.dart';
import 'package:noel_notes/pages/about.dart';
import 'package:noel_notes/pages/account_info.dart';
import 'package:noel_notes/pages/settings.dart';
import 'package:noel_notes/AppWrite/auth_api.dart';
import 'package:noel_notes/appwrite/auth_api.dart';
import 'package:provider/provider.dart';

import 'icons/unicon_icons.dart';

Expand All @@ -26,7 +24,7 @@ class CustomAppBar extends AppBar {
}

class _CustomAppBarState extends State<CustomAppBar> {
signOut() {
void signOut() {
final AuthAPI appwrite = context.read<AuthAPI>();
appwrite.signOut();
}
Expand Down Expand Up @@ -110,7 +108,7 @@ class _CustomAppBarState extends State<CustomAppBar> {
iconColor: Theme.of(context).colorScheme.error,
),
onPressed: () {
signOut();
context.read<AuthAPI>().signOut();
},
leadingIcon: const Icon(Icons.logout),
child: const Text("Sign Out"),
Expand Down
20 changes: 2 additions & 18 deletions lib/component/themes.dart
Original file line number Diff line number Diff line change
@@ -1,24 +1,8 @@
// ignore_for_file: avoid_print, file_names

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:noel_notes/model/settings/manager.dart';

/// Custom [BlocObserver] that observes all bloc and cubit state changes.
class AppBlocObserver extends BlocObserver {
@override
void onChange(BlocBase bloc, Change change) {
super.onChange(bloc, change);
if (bloc is Cubit) print(change);
}

@override
void onTransition(Bloc bloc, Transition transition) {
super.onTransition(bloc, transition);
print(transition);
}
}

enum Accent {
peachPink(Color.fromARGB(255, 255, 164, 194), "Peach Pink"),
babyBlue(Color.fromARGB(255, 157, 220, 251), "Baby Blue"),
Expand All @@ -44,7 +28,7 @@ class ThemeManager {
Brightness get brightness => settings.getValue<Brightness>(Settings.theme);
}

class ThemeCubit extends Cubit<ThemeManager> {
class ThemeCubit {
SettingsManager settings;
ThemeCubit(super.initialState, this.settings);
ThemeCubit(this.settings);
}
Loading

0 comments on commit e591926

Please sign in to comment.