elCaribe app - customization and branding
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import 'package:news/utils/strings.dart';
|
||||
import 'package:news/utils/api.dart';
|
||||
|
||||
class LikeAndDisLikeRemoteDataSource {
|
||||
Future<dynamic> getLike({required String langId, required String offset, required String perPage}) async {
|
||||
try {
|
||||
final body = {LANGUAGE_ID: langId, OFFSET: offset, LIMIT: perPage};
|
||||
|
||||
final result = await Api.sendApiRequest(body: body, url: Api.getLikeNewsApi);
|
||||
|
||||
return result;
|
||||
} catch (e) {
|
||||
throw ApiMessageAndCodeException(errorMessage: e.toString());
|
||||
}
|
||||
}
|
||||
|
||||
Future addAndRemoveLike({required String newsId, required String status}) async {
|
||||
try {
|
||||
final body = {NEWS_ID: newsId, STATUS: status};
|
||||
final result = await Api.sendApiRequest(body: body, url: Api.setLikesDislikesApi);
|
||||
return result[DATA];
|
||||
} catch (e) {
|
||||
throw ApiMessageAndCodeException(errorMessage: e.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
import 'package:news/data/models/NewsModel.dart';
|
||||
import 'package:news/data/repositories/LikeAndDisLikeNews/LikeAndDisLikeNewsDataSource.dart';
|
||||
import 'package:news/utils/strings.dart';
|
||||
|
||||
class LikeAndDisLikeRepository {
|
||||
static final LikeAndDisLikeRepository _LikeAndDisLikeRepository = LikeAndDisLikeRepository._internal();
|
||||
late LikeAndDisLikeRemoteDataSource _LikeAndDisLikeRemoteDataSource;
|
||||
|
||||
factory LikeAndDisLikeRepository() {
|
||||
_LikeAndDisLikeRepository._LikeAndDisLikeRemoteDataSource = LikeAndDisLikeRemoteDataSource();
|
||||
return _LikeAndDisLikeRepository;
|
||||
}
|
||||
|
||||
LikeAndDisLikeRepository._internal();
|
||||
|
||||
Future<Map<String, dynamic>> getLike({required String offset, required String limit, required String langId}) async {
|
||||
final result = await _LikeAndDisLikeRemoteDataSource.getLike(perPage: limit, offset: offset, langId: langId);
|
||||
|
||||
return {"total": result[TOTAL], "LikeAndDisLike": (result[DATA] as List).map((e) => NewsModel.fromJson(e)).toList()};
|
||||
}
|
||||
|
||||
Future setLike({required String newsId, required String status}) async {
|
||||
final result = await _LikeAndDisLikeRemoteDataSource.addAndRemoveLike(status: status, newsId: newsId);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user