networkFilesContent top-level property
Implementation
Map<String, String> networkFilesContent = {
'api_constants': '''
class ApiConstants {
const ApiConstants._();
static const String apiBaseUrl = 'https://api.example.com/';
}
class ApiErrors {}
''',
//-------------------------------------------------------------------------------------------------------------------------
'api_error_handler': '''
import 'package:dio/dio.dart';
import 'api_error_model.dart';
class ApiErrorHandler {
static ApiErrorModel handleError(dynamic error) {
// if (error is DioException) {
// switch (error.type) {
// case DioExceptionType.connectionTimeout:
// return ApiErrorModel(message: "connection timeout, please try again");
// case DioExceptionType.sendTimeout:
// return ApiErrorModel(message: "");
// case DioExceptionType.receiveTimeout:
// return ApiErrorModel(message: "timeout, please try again");
// case DioExceptionType.badResponse:
// return ApiErrorModel.fromJson(error.response?.data);
// case DioExceptionType.cancel:
// return ApiErrorModel(message: "error cancelled");
// case DioExceptionType.connectionError:
// case DioExceptionType.badCertificate:
// return ApiErrorModel(message: "bad certificate, please try again");
// case DioExceptionType.unknown:
// return ApiErrorModel(message: "unknown error, please try again");
// }
// } else {
// return ApiErrorModel(message: "error, please try again");
// }
return ApiErrorModel(message: "error, please try again");
}
}
''',
//-------------------------------------------------------------------------------------------------------------------------
'api_result': '''
import 'package:freezed_annotation/freezed_annotation.dart';
import 'api_error_model.dart';
part 'api_result.freezed.dart';
@Freezed()
abstract class ApiResult<T> with _\$ApiResult<T> {
const factory ApiResult.success(T data) = Success<T>;
const factory ApiResult.failure(ApiErrorModel apiErrorModel) = Failure<T>;
}
''',
//-------------------------------------------------------------------------------------------------------------------------
'api_error_model': '''
import 'package:json_annotation/json_annotation.dart';
part 'api_error_model.g.dart';
@JsonSerializable()
class ApiErrorModel {
final String message;
ApiErrorModel({required this.message});
factory ApiErrorModel.fromJson(Map<String, dynamic> json) => _\$ApiErrorModelFromJson(json);
}
''',
//-------------------------------------------------------------------------------------------------------------------------
'dio_factory': '''
import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
class DioFactory {
DioFactory._();
static Dio? dio;
static Future<Dio> getDio() async {
Duration timeOut = const Duration(seconds: 30);
if (dio == null) {
dio = Dio();
dio!
..options.connectTimeout = timeOut
..options.receiveTimeout = timeOut;
await addDioHeaders();
addDioInterceptor();
return dio!;
} else {
return dio!;
}
}
static Future<void> addDioHeaders() async {
dio?.options.headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
// 'Authorization':'Bearer \${await SharedPrefHelper.getSecuredString(SharedPrefKeys.userToken)}',
};
}
static void addDioInterceptor() {
dio?.interceptors.add(
PrettyDioLogger(
requestBody: true,
requestHeader: true,
responseHeader: true,
error: true,
),
);
}
}
''',
};