Skip to content

Commit 035c63d

Browse files
committed
feat: initialise repos in main.dart
1 parent 34c5bbe commit 035c63d

3 files changed

Lines changed: 31 additions & 14 deletions

File tree

lib/domain/repositories/cp_repository.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import '../models/feed.dart';
77
import '../models/submission.dart';
88

99
class CPRepository {
10-
const CPRepository();
10+
static void init() => instance = CPRepository();
11+
12+
static late final CPRepository instance;
1113

1214
Future<List<ActivityDetails>?> getActivityDetails(String uid) async {
1315
final endPoint = 'graph/activity/$uid';

lib/domain/repositories/user_repository.dart

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import '../models/user.dart';
88
import '../models/user_profile.dart';
99

1010
class UserRepository {
11-
const UserRepository();
11+
static void init() => instance = UserRepository();
12+
13+
// Instance
14+
static late final UserRepository instance;
1215

1316
Future<bool> isEmailAvailable(String email) async {
1417
final endpoint = 'user/available?email=$email';
@@ -148,7 +151,24 @@ class UserRepository {
148151
return response['status_code'] == 200;
149152
}
150153

151-
Future<List<User>?> search(String query) async {}
154+
Future<List<User>> search(String query) async {
155+
final endpoint = 'user/search?query=$query';
156+
final headers = <String, dynamic>{};
157+
158+
await ApiService.addTokenToHeaders(headers);
159+
final response = await ApiService.get(
160+
endpoint,
161+
headers: headers,
162+
);
163+
164+
final _users = <User>[];
165+
if (response['status_code'] == 200) {
166+
for (final user in json.decode(response['data']) ?? []) {
167+
_users.add(User.fromJson(user));
168+
}
169+
}
170+
return _users;
171+
}
152172

153173
Future<List<String>> getInstituteList() async {
154174
const endpoint = 'institutes';
@@ -171,8 +191,6 @@ class UserRepository {
171191
return [];
172192
}
173193

174-
// search
175-
176194
Future<List<SubmissionStatus>?> getSubmissionStatusData(String id) async {
177195
final endpoint = 'graph/status/$id';
178196
final headers = <String, dynamic>{};

lib/presentation/core/main_app.dart

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import 'package:flutter/material.dart';
2-
import 'package:flutter_bloc/flutter_bloc.dart';
32

43
import '../../data/services/local/storage_service.dart';
54
import '../../data/services/remote/api_service.dart';
5+
import '../../domain/repositories/cp_repository.dart';
66
import '../../domain/repositories/user_repository.dart';
77

88
class Codephile extends StatelessWidget {
@@ -20,13 +20,10 @@ class Codephile extends StatelessWidget {
2020
ApiService.init();
2121
StorageService.init();
2222

23-
return MultiRepositoryProvider(
24-
providers: <RepositoryProvider>[
25-
RepositoryProvider(
26-
create: (context) => const UserRepository(),
27-
),
28-
],
29-
child: const Codephile(),
30-
);
23+
// Repositories
24+
UserRepository.init();
25+
CPRepository.init();
26+
27+
return const Codephile();
3128
}
3229
}

0 commit comments

Comments
 (0)