Skip to content

Commit

Permalink
📝 Refine comments for clarity and readability
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex committed Nov 15, 2024
1 parent c89e011 commit 3ea4a7e
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
9 changes: 8 additions & 1 deletion lib/presentation_layer/providers/app_update_provider.dart
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
import 'package:camelus/data_layer/repositories/app_update_repository_impl.dart';
import 'package:camelus/data_layer/repositories/app_update_repository_impl.dart';
import 'package:camelus/domain_layer/repositories/app_update_repository.dart';
import 'package:camelus/domain_layer/usecases/check_app_update.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:http/http.dart' as http;

import '../../data_layer/data_sources/http_request_data_source.dart';

// Provider for checking app updates.
// interacts with the AppUpdateRepository to check for app updates.
final appUpdateProvider = Provider<CheckAppUpdate>((ref) {
// Creating an HTTP client for making requests to the data source.
final http.Client client = http.Client();

// Creating an instance of HttpRequestDataSource, which handles HTTP requests.
final HttpRequestDataSource dataSource = HttpRequestDataSource(client);

final AppUpdateRepository appUpdateRepository =
AppUpdateRepositoryImpl(httpJsonDataSource: dataSource);

final CheckAppUpdate appUpdate = CheckAppUpdate(appUpdateRepository);

// Returning the CheckAppUpdate instance, which will be used by consumers.
return appUpdate;
});
15 changes: 11 additions & 4 deletions lib/presentation_layer/providers/event_verifier.dart
Original file line number Diff line number Diff line change
@@ -1,25 +1,32 @@
import 'package:ndk/ndk.dart';
import 'package:ndk/ndk.dart';
import 'package:ndk/entities.dart' as ndk_entities;
import 'package:riverpod/riverpod.dart';

// Provider for the EventVerifier, which provides an instance of a specific event verifier.
// Currently set to use the RustEventVerifier.
final eventVerifierProvider = Provider<EventVerifier>((ref) {
// Creating instances of different EventVerifiers (Bip340, Mock, Rust).
final EventVerifier eventVerifier = Bip340EventVerifier();
final EventVerifier mockEventVerifier = MockEventVerifier();
final RustEventVerifier rustEventVerifier = RustEventVerifier();


return rustEventVerifier;
});

/// This mock verifier returns a fixed result, controlled by the constructor.
class MockEventVerifier implements EventVerifier {
bool _result = true;

/// If [result] is false, [verify] will always return false. Default is true.

/// The result parameter controls whether verify always returns true or false.
MockEventVerifier({bool result = true}) {
_result = result;
_result = result;
}

/// Verifies the event, returning a fixed result.
@override
Future<bool> verify(ndk_entities.Nip01Event event) async {
return _result;
return _result; // Return the mock result
}
}
7 changes: 6 additions & 1 deletion lib/presentation_layer/providers/following_provider.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:camelus/data_layer/repositories/follow_repository_impl.dart';
import 'package:camelus/data_layer/repositories/follow_repository_impl.dart';
import 'package:camelus/domain_layer/repositories/follow_repository.dart';
import 'package:camelus/domain_layer/usecases/follow.dart';
import 'package:camelus/presentation_layer/providers/event_signer_provider.dart';
Expand All @@ -9,6 +9,8 @@ import '../../data_layer/data_sources/dart_ndk_source.dart';
import 'event_verifier.dart';
import 'ndk_provider.dart';

// Provider for managing the "Follow" use case.
// which interacts with the FollowRepository to manage follow actions.
final followingProvider = Provider<Follow>((ref) {
final ndk = ref.watch(ndkProvider);

Expand All @@ -18,14 +20,17 @@ final followingProvider = Provider<Follow>((ref) {

final DartNdkSource dartNdkSource = DartNdkSource(ndk);

// Creates an instance of FollowRepository, passing the data source, event verifier and event signer.
final FollowRepository _followRepository = FollowRepositoryImpl(
dartNdkSource: dartNdkSource,
eventVerifier: eventVerifier,
eventSigner: eventSigner,
);

// Watches the eventSignerProvider again to get the signer for the user's public key.
final signerP = ref.watch(eventSignerProvider);

// Creates an instance of the Follow use case, passing the follow repository and user's public key.
final follow = Follow(
followRepository: _followRepository,
selfPubkey: signerP?.getPublicKey(),
Expand Down

0 comments on commit 3ea4a7e

Please sign in to comment.