Skip to content

Commit 997f0d2

Browse files
demo project completed
1 parent e909a88 commit 997f0d2

20 files changed

+630
-470
lines changed

lib/data/remote/endpoints.dart

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
class Endpoints {
2-
//Sample Api Url https://mocki.io/v1/39ab1e09-d0f9-4e53-9bf5-f1b5f20f0935
2+
//Sample Api Url https://saksham-flutter.github.io/v1/products.json
33
Endpoints._();
44

55
//base url
6-
static const baseUrl = 'https://mocki.io/';
7-
static const authority = 'mocki.io';
6+
static const baseUrl = 'https://saksham-flutter.github.io/';
7+
static const authority = 'saksham-flutter.github.io';
88
static const path = 'v1';
99

1010
// auth APIs
11-
static const getProduct = '39ab1e09-d0f9-4e53-9bf5-f1b5f20f0935';
11+
static const getProduct = 'products.json';
12+
static const noProduct = 'no_product.json';
1213
}

lib/data/remote/model/default_serializers.dart

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ import 'package:built_collection/built_collection.dart';
22
import 'package:built_value/serializer.dart';
33
import 'package:built_value/standard_json_plugin.dart';
44
import 'package:mvc_flutter/data/remote/model/product_dto.dart';
5+
import 'package:mvc_flutter/data/remote/model/product_response_dto.dart';
56
import 'package:mvc_flutter/data/remote/model/response_dto.dart';
7+
import 'package:mvc_flutter/data/remote/model/unit_dto.dart';
68

79
part 'default_serializers.g.dart';
810

9-
@SerializersFor([
10-
ResponseDto,
11-
ProductDto,
12-
])
11+
@SerializersFor([ProductResponseDto, ProductDto, ResponseDto, UnitDto])
1312
final Serializers serializers =
1413
(_$serializers.toBuilder()..addPlugin(StandardJsonPlugin())).build();

lib/data/remote/model/default_serializers.g.dart

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/data/remote/model/product_dto.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ abstract class ProductDto implements Built<ProductDto, ProductDtoBuilder> {
88
ProductDto._();
99

1010
@BuiltValueField(wireName: 'id')
11-
String get id;
11+
int get id;
1212

1313
@BuiltValueField(wireName: 'title')
1414
String get title;

lib/data/remote/model/product_dto.g.dart

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import 'package:built_collection/built_collection.dart';
2+
import 'package:built_value/built_value.dart';
3+
import 'package:built_value/serializer.dart';
4+
import 'package:mvc_flutter/data/remote/model/product_dto.dart';
5+
6+
part 'product_response_dto.g.dart';
7+
8+
abstract class ProductResponseDto
9+
implements Built<ProductResponseDto, ProductResponseDtoBuilder> {
10+
@BuiltValueField(wireName: 'products')
11+
BuiltList<ProductDto> get products;
12+
13+
ProductResponseDto._();
14+
15+
static Serializer<ProductResponseDto> get serializer =>
16+
_$productResponseDtoSerializer;
17+
18+
factory ProductResponseDto(
19+
[void Function(ProductResponseDtoBuilder)? updates]) =
20+
_$ProductResponseDto;
21+
}

lib/data/remote/model/response_dto.g.dart

Lines changed: 0 additions & 223 deletions
This file was deleted.

lib/data/remote/model/unit_dto.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import 'package:built_value/built_value.dart';
2+
import 'package:built_value/serializer.dart';
3+
4+
part 'unit_dto.g.dart';
5+
6+
abstract class UnitDto implements Built<UnitDto, UnitDtoBuilder> {
7+
UnitDto._();
8+
9+
static Serializer<UnitDto> get serializer => _$unitDtoSerializer;
10+
11+
factory UnitDto([void Function(UnitDtoBuilder)? updates]) = _$UnitDto;
12+
}

lib/data/remote/networking.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ dynamic _callGetApi(
2525
final uri = Uri(
2626
scheme: 'https',
2727
host: baseUrl ?? Endpoints.authority,
28-
path: path,
29-
// queryParameters: queryParams,
28+
path: '${Endpoints.path}/$path',
29+
queryParameters: queryParams.isEmpty ? queryParams : null,
3030
);
3131
log(uri.toString(), name: LogTags.apiCall);
3232
//calling the REST API
@@ -45,8 +45,7 @@ dynamic _callPostApi(
4545
Uri uri = Uri(
4646
scheme: 'https',
4747
host: baseUrl ?? Endpoints.authority,
48-
path: path,
49-
// queryParameters: queryParams,
48+
path: '${Endpoints.path}/$path',
5049
);
5150

5251
http.MultipartRequest request = http.MultipartRequest("POST", uri);
@@ -62,6 +61,15 @@ dynamic _callPostApi(
6261
return jsonDecode(responseBody);
6362
}
6463

64+
Future<ResponseDto<T?>> httpGet<T>(
65+
final String path,
66+
final Map<String, String> queryParams, {
67+
final String? baseUrl,
68+
}) async {
69+
final response = await _callGetApi(path, queryParams, baseUrl);
70+
return parseResponse<T>(response);
71+
}
72+
6573
Future<ResponseDto<T?>> httpPost<T>(
6674
final String path,
6775
final Map<String, String> body, {

0 commit comments

Comments
 (0)