//Here is the mapper that converts the response from the endpoints to non nullable object (model)
|
|
|
|
import 'package:itasmob/app/extension.dart';
|
|
import 'package:itasmob/data/response/responses.dart';
|
|
import 'package:itasmob/domain/model/model.dart';
|
|
|
|
extension DataResponseMapper on DataResposne? {
|
|
Data toDomain(){
|
|
return Data(
|
|
this?.author?.orEmpty() ?? EMPTY,
|
|
this?.title?.orEmpty() ?? EMPTY,
|
|
this?.description?.orEmpty() ?? EMPTY,
|
|
this?.url?.orEmpty() ?? EMPTY,
|
|
this?.urlToImage?.orEmpty() ?? EMPTY,
|
|
this?.content?.orEmpty() ?? EMPTY,
|
|
this?.publishedAt?.orEmpty() ?? EMPTY,
|
|
);
|
|
}
|
|
}
|
|
|
|
extension NewsResponseMapper on NewsResponse?{
|
|
News toDomain(){
|
|
List<Data> mappedData = (this?.dataResposne.articles?.map((articles) => articles.toDomain()) ?? Iterable.empty())
|
|
.cast<Data>()
|
|
.toList();
|
|
|
|
var data = NewsData(mappedData);
|
|
return News(data);
|
|
}
|
|
}
|