relocate core models

This commit is contained in:
Ashita Prasad
2024-10-21 10:05:06 +05:30
parent 3cc720fee8
commit 3c51af39bc
8 changed files with 2 additions and 2 deletions

View File

@ -0,0 +1,71 @@
import 'dart:io';
import 'dart:convert';
import 'package:freezed_annotation/freezed_annotation.dart';
import '../utils/utils.dart'
show rowsToFormDataMapList, rowsToMap, getEnabledRows;
import '../consts.dart';
import 'models.dart';
part 'http_request_model.freezed.dart';
part 'http_request_model.g.dart';
@freezed
class HttpRequestModel with _$HttpRequestModel {
const HttpRequestModel._();
@JsonSerializable(
explicitToJson: true,
anyMap: true,
)
const factory HttpRequestModel({
@Default(HTTPVerb.get) HTTPVerb method,
@Default("") String url,
List<NameValueModel>? headers,
List<NameValueModel>? params,
List<bool>? isHeaderEnabledList,
List<bool>? isParamEnabledList,
@Default(ContentType.json) ContentType bodyContentType,
String? body,
List<FormDataModel>? formData,
}) = _HttpRequestModel;
factory HttpRequestModel.fromJson(Map<String, Object?> json) =>
_$HttpRequestModelFromJson(json);
Map<String, String> get headersMap => rowsToMap(headers) ?? {};
Map<String, String> get paramsMap => rowsToMap(params) ?? {};
List<NameValueModel>? get enabledHeaders =>
getEnabledRows(headers, isHeaderEnabledList);
List<NameValueModel>? get enabledParams =>
getEnabledRows(params, isParamEnabledList);
Map<String, String> get enabledHeadersMap => rowsToMap(enabledHeaders) ?? {};
Map<String, String> get enabledParamsMap => rowsToMap(enabledParams) ?? {};
bool get hasContentTypeHeader => enabledHeadersMap.keys
.any((k) => k.toLowerCase() == HttpHeaders.contentTypeHeader);
bool get hasFormDataContentType => bodyContentType == ContentType.formdata;
bool get hasJsonContentType => bodyContentType == ContentType.json;
bool get hasTextContentType => bodyContentType == ContentType.text;
int get contentLength => utf8.encode(body ?? "").length;
bool get hasBody => hasJsonData || hasTextData || hasFormData;
bool get hasJsonData =>
kMethodsWithBody.contains(method) &&
hasJsonContentType &&
contentLength > 0;
bool get hasTextData =>
kMethodsWithBody.contains(method) &&
hasTextContentType &&
contentLength > 0;
bool get hasFormData =>
kMethodsWithBody.contains(method) &&
hasFormDataContentType &&
formDataMapList.isNotEmpty;
List<FormDataModel> get formDataList => formData ?? <FormDataModel>[];
List<Map<String, String>> get formDataMapList =>
rowsToFormDataMapList(formDataList) ?? [];
bool get hasFileInFormData => formDataList
.map((e) => e.type == FormDataType.file)
.any((element) => element);
}

View File

@ -0,0 +1,381 @@
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
part of 'http_request_model.dart';
// **************************************************************************
// FreezedGenerator
// **************************************************************************
T _$identity<T>(T value) => value;
final _privateConstructorUsedError = UnsupportedError(
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
HttpRequestModel _$HttpRequestModelFromJson(Map<String, dynamic> json) {
return _HttpRequestModel.fromJson(json);
}
/// @nodoc
mixin _$HttpRequestModel {
HTTPVerb get method => throw _privateConstructorUsedError;
String get url => throw _privateConstructorUsedError;
List<NameValueModel>? get headers => throw _privateConstructorUsedError;
List<NameValueModel>? get params => throw _privateConstructorUsedError;
List<bool>? get isHeaderEnabledList => throw _privateConstructorUsedError;
List<bool>? get isParamEnabledList => throw _privateConstructorUsedError;
ContentType get bodyContentType => throw _privateConstructorUsedError;
String? get body => throw _privateConstructorUsedError;
List<FormDataModel>? get formData => throw _privateConstructorUsedError;
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
$HttpRequestModelCopyWith<HttpRequestModel> get copyWith =>
throw _privateConstructorUsedError;
}
/// @nodoc
abstract class $HttpRequestModelCopyWith<$Res> {
factory $HttpRequestModelCopyWith(
HttpRequestModel value, $Res Function(HttpRequestModel) then) =
_$HttpRequestModelCopyWithImpl<$Res, HttpRequestModel>;
@useResult
$Res call(
{HTTPVerb method,
String url,
List<NameValueModel>? headers,
List<NameValueModel>? params,
List<bool>? isHeaderEnabledList,
List<bool>? isParamEnabledList,
ContentType bodyContentType,
String? body,
List<FormDataModel>? formData});
}
/// @nodoc
class _$HttpRequestModelCopyWithImpl<$Res, $Val extends HttpRequestModel>
implements $HttpRequestModelCopyWith<$Res> {
_$HttpRequestModelCopyWithImpl(this._value, this._then);
// ignore: unused_field
final $Val _value;
// ignore: unused_field
final $Res Function($Val) _then;
@pragma('vm:prefer-inline')
@override
$Res call({
Object? method = null,
Object? url = null,
Object? headers = freezed,
Object? params = freezed,
Object? isHeaderEnabledList = freezed,
Object? isParamEnabledList = freezed,
Object? bodyContentType = null,
Object? body = freezed,
Object? formData = freezed,
}) {
return _then(_value.copyWith(
method: null == method
? _value.method
: method // ignore: cast_nullable_to_non_nullable
as HTTPVerb,
url: null == url
? _value.url
: url // ignore: cast_nullable_to_non_nullable
as String,
headers: freezed == headers
? _value.headers
: headers // ignore: cast_nullable_to_non_nullable
as List<NameValueModel>?,
params: freezed == params
? _value.params
: params // ignore: cast_nullable_to_non_nullable
as List<NameValueModel>?,
isHeaderEnabledList: freezed == isHeaderEnabledList
? _value.isHeaderEnabledList
: isHeaderEnabledList // ignore: cast_nullable_to_non_nullable
as List<bool>?,
isParamEnabledList: freezed == isParamEnabledList
? _value.isParamEnabledList
: isParamEnabledList // ignore: cast_nullable_to_non_nullable
as List<bool>?,
bodyContentType: null == bodyContentType
? _value.bodyContentType
: bodyContentType // ignore: cast_nullable_to_non_nullable
as ContentType,
body: freezed == body
? _value.body
: body // ignore: cast_nullable_to_non_nullable
as String?,
formData: freezed == formData
? _value.formData
: formData // ignore: cast_nullable_to_non_nullable
as List<FormDataModel>?,
) as $Val);
}
}
/// @nodoc
abstract class _$$HttpRequestModelImplCopyWith<$Res>
implements $HttpRequestModelCopyWith<$Res> {
factory _$$HttpRequestModelImplCopyWith(_$HttpRequestModelImpl value,
$Res Function(_$HttpRequestModelImpl) then) =
__$$HttpRequestModelImplCopyWithImpl<$Res>;
@override
@useResult
$Res call(
{HTTPVerb method,
String url,
List<NameValueModel>? headers,
List<NameValueModel>? params,
List<bool>? isHeaderEnabledList,
List<bool>? isParamEnabledList,
ContentType bodyContentType,
String? body,
List<FormDataModel>? formData});
}
/// @nodoc
class __$$HttpRequestModelImplCopyWithImpl<$Res>
extends _$HttpRequestModelCopyWithImpl<$Res, _$HttpRequestModelImpl>
implements _$$HttpRequestModelImplCopyWith<$Res> {
__$$HttpRequestModelImplCopyWithImpl(_$HttpRequestModelImpl _value,
$Res Function(_$HttpRequestModelImpl) _then)
: super(_value, _then);
@pragma('vm:prefer-inline')
@override
$Res call({
Object? method = null,
Object? url = null,
Object? headers = freezed,
Object? params = freezed,
Object? isHeaderEnabledList = freezed,
Object? isParamEnabledList = freezed,
Object? bodyContentType = null,
Object? body = freezed,
Object? formData = freezed,
}) {
return _then(_$HttpRequestModelImpl(
method: null == method
? _value.method
: method // ignore: cast_nullable_to_non_nullable
as HTTPVerb,
url: null == url
? _value.url
: url // ignore: cast_nullable_to_non_nullable
as String,
headers: freezed == headers
? _value._headers
: headers // ignore: cast_nullable_to_non_nullable
as List<NameValueModel>?,
params: freezed == params
? _value._params
: params // ignore: cast_nullable_to_non_nullable
as List<NameValueModel>?,
isHeaderEnabledList: freezed == isHeaderEnabledList
? _value._isHeaderEnabledList
: isHeaderEnabledList // ignore: cast_nullable_to_non_nullable
as List<bool>?,
isParamEnabledList: freezed == isParamEnabledList
? _value._isParamEnabledList
: isParamEnabledList // ignore: cast_nullable_to_non_nullable
as List<bool>?,
bodyContentType: null == bodyContentType
? _value.bodyContentType
: bodyContentType // ignore: cast_nullable_to_non_nullable
as ContentType,
body: freezed == body
? _value.body
: body // ignore: cast_nullable_to_non_nullable
as String?,
formData: freezed == formData
? _value._formData
: formData // ignore: cast_nullable_to_non_nullable
as List<FormDataModel>?,
));
}
}
/// @nodoc
@JsonSerializable(explicitToJson: true, anyMap: true)
class _$HttpRequestModelImpl extends _HttpRequestModel {
const _$HttpRequestModelImpl(
{this.method = HTTPVerb.get,
this.url = "",
final List<NameValueModel>? headers,
final List<NameValueModel>? params,
final List<bool>? isHeaderEnabledList,
final List<bool>? isParamEnabledList,
this.bodyContentType = ContentType.json,
this.body,
final List<FormDataModel>? formData})
: _headers = headers,
_params = params,
_isHeaderEnabledList = isHeaderEnabledList,
_isParamEnabledList = isParamEnabledList,
_formData = formData,
super._();
factory _$HttpRequestModelImpl.fromJson(Map<String, dynamic> json) =>
_$$HttpRequestModelImplFromJson(json);
@override
@JsonKey()
final HTTPVerb method;
@override
@JsonKey()
final String url;
final List<NameValueModel>? _headers;
@override
List<NameValueModel>? get headers {
final value = _headers;
if (value == null) return null;
if (_headers is EqualUnmodifiableListView) return _headers;
// ignore: implicit_dynamic_type
return EqualUnmodifiableListView(value);
}
final List<NameValueModel>? _params;
@override
List<NameValueModel>? get params {
final value = _params;
if (value == null) return null;
if (_params is EqualUnmodifiableListView) return _params;
// ignore: implicit_dynamic_type
return EqualUnmodifiableListView(value);
}
final List<bool>? _isHeaderEnabledList;
@override
List<bool>? get isHeaderEnabledList {
final value = _isHeaderEnabledList;
if (value == null) return null;
if (_isHeaderEnabledList is EqualUnmodifiableListView)
return _isHeaderEnabledList;
// ignore: implicit_dynamic_type
return EqualUnmodifiableListView(value);
}
final List<bool>? _isParamEnabledList;
@override
List<bool>? get isParamEnabledList {
final value = _isParamEnabledList;
if (value == null) return null;
if (_isParamEnabledList is EqualUnmodifiableListView)
return _isParamEnabledList;
// ignore: implicit_dynamic_type
return EqualUnmodifiableListView(value);
}
@override
@JsonKey()
final ContentType bodyContentType;
@override
final String? body;
final List<FormDataModel>? _formData;
@override
List<FormDataModel>? get formData {
final value = _formData;
if (value == null) return null;
if (_formData is EqualUnmodifiableListView) return _formData;
// ignore: implicit_dynamic_type
return EqualUnmodifiableListView(value);
}
@override
String toString() {
return 'HttpRequestModel(method: $method, url: $url, headers: $headers, params: $params, isHeaderEnabledList: $isHeaderEnabledList, isParamEnabledList: $isParamEnabledList, bodyContentType: $bodyContentType, body: $body, formData: $formData)';
}
@override
bool operator ==(Object other) {
return identical(this, other) ||
(other.runtimeType == runtimeType &&
other is _$HttpRequestModelImpl &&
(identical(other.method, method) || other.method == method) &&
(identical(other.url, url) || other.url == url) &&
const DeepCollectionEquality().equals(other._headers, _headers) &&
const DeepCollectionEquality().equals(other._params, _params) &&
const DeepCollectionEquality()
.equals(other._isHeaderEnabledList, _isHeaderEnabledList) &&
const DeepCollectionEquality()
.equals(other._isParamEnabledList, _isParamEnabledList) &&
(identical(other.bodyContentType, bodyContentType) ||
other.bodyContentType == bodyContentType) &&
(identical(other.body, body) || other.body == body) &&
const DeepCollectionEquality().equals(other._formData, _formData));
}
@JsonKey(ignore: true)
@override
int get hashCode => Object.hash(
runtimeType,
method,
url,
const DeepCollectionEquality().hash(_headers),
const DeepCollectionEquality().hash(_params),
const DeepCollectionEquality().hash(_isHeaderEnabledList),
const DeepCollectionEquality().hash(_isParamEnabledList),
bodyContentType,
body,
const DeepCollectionEquality().hash(_formData));
@JsonKey(ignore: true)
@override
@pragma('vm:prefer-inline')
_$$HttpRequestModelImplCopyWith<_$HttpRequestModelImpl> get copyWith =>
__$$HttpRequestModelImplCopyWithImpl<_$HttpRequestModelImpl>(
this, _$identity);
@override
Map<String, dynamic> toJson() {
return _$$HttpRequestModelImplToJson(
this,
);
}
}
abstract class _HttpRequestModel extends HttpRequestModel {
const factory _HttpRequestModel(
{final HTTPVerb method,
final String url,
final List<NameValueModel>? headers,
final List<NameValueModel>? params,
final List<bool>? isHeaderEnabledList,
final List<bool>? isParamEnabledList,
final ContentType bodyContentType,
final String? body,
final List<FormDataModel>? formData}) = _$HttpRequestModelImpl;
const _HttpRequestModel._() : super._();
factory _HttpRequestModel.fromJson(Map<String, dynamic> json) =
_$HttpRequestModelImpl.fromJson;
@override
HTTPVerb get method;
@override
String get url;
@override
List<NameValueModel>? get headers;
@override
List<NameValueModel>? get params;
@override
List<bool>? get isHeaderEnabledList;
@override
List<bool>? get isParamEnabledList;
@override
ContentType get bodyContentType;
@override
String? get body;
@override
List<FormDataModel>? get formData;
@override
@JsonKey(ignore: true)
_$$HttpRequestModelImplCopyWith<_$HttpRequestModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View File

@ -0,0 +1,65 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'http_request_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
_$HttpRequestModelImpl _$$HttpRequestModelImplFromJson(Map json) =>
_$HttpRequestModelImpl(
method: $enumDecodeNullable(_$HTTPVerbEnumMap, json['method']) ??
HTTPVerb.get,
url: json['url'] as String? ?? "",
headers: (json['headers'] as List<dynamic>?)
?.map((e) =>
NameValueModel.fromJson(Map<String, Object?>.from(e as Map)))
.toList(),
params: (json['params'] as List<dynamic>?)
?.map((e) =>
NameValueModel.fromJson(Map<String, Object?>.from(e as Map)))
.toList(),
isHeaderEnabledList: (json['isHeaderEnabledList'] as List<dynamic>?)
?.map((e) => e as bool)
.toList(),
isParamEnabledList: (json['isParamEnabledList'] as List<dynamic>?)
?.map((e) => e as bool)
.toList(),
bodyContentType:
$enumDecodeNullable(_$ContentTypeEnumMap, json['bodyContentType']) ??
ContentType.json,
body: json['body'] as String?,
formData: (json['formData'] as List<dynamic>?)
?.map((e) =>
FormDataModel.fromJson(Map<String, Object?>.from(e as Map)))
.toList(),
);
Map<String, dynamic> _$$HttpRequestModelImplToJson(
_$HttpRequestModelImpl instance) =>
<String, dynamic>{
'method': _$HTTPVerbEnumMap[instance.method]!,
'url': instance.url,
'headers': instance.headers?.map((e) => e.toJson()).toList(),
'params': instance.params?.map((e) => e.toJson()).toList(),
'isHeaderEnabledList': instance.isHeaderEnabledList,
'isParamEnabledList': instance.isParamEnabledList,
'bodyContentType': _$ContentTypeEnumMap[instance.bodyContentType]!,
'body': instance.body,
'formData': instance.formData?.map((e) => e.toJson()).toList(),
};
const _$HTTPVerbEnumMap = {
HTTPVerb.get: 'get',
HTTPVerb.head: 'head',
HTTPVerb.post: 'post',
HTTPVerb.put: 'put',
HTTPVerb.patch: 'patch',
HTTPVerb.delete: 'delete',
};
const _$ContentTypeEnumMap = {
ContentType.json: 'json',
ContentType.text: 'text',
ContentType.formdata: 'formdata',
};

View File

@ -0,0 +1,2 @@
export 'http_request_model.dart';
export 'name_value_model.dart';

View File

@ -0,0 +1,19 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter/foundation.dart';
part 'name_value_model.freezed.dart';
part 'name_value_model.g.dart';
@freezed
class NameValueModel with _$NameValueModel {
const factory NameValueModel({
required String name,
required dynamic value,
}) = _NameValueModel;
factory NameValueModel.fromJson(Map<String, Object?> json) =>
_$NameValueModelFromJson(json);
}
const kNameValueEmptyModel = NameValueModel(name: "", value: "");

View File

@ -0,0 +1,182 @@
// coverage:ignore-file
// GENERATED CODE - DO NOT MODIFY BY HAND
// ignore_for_file: type=lint
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
part of 'name_value_model.dart';
// **************************************************************************
// FreezedGenerator
// **************************************************************************
T _$identity<T>(T value) => value;
final _privateConstructorUsedError = UnsupportedError(
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
NameValueModel _$NameValueModelFromJson(Map<String, dynamic> json) {
return _NameValueModel.fromJson(json);
}
/// @nodoc
mixin _$NameValueModel {
String get name => throw _privateConstructorUsedError;
dynamic get value => throw _privateConstructorUsedError;
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
$NameValueModelCopyWith<NameValueModel> get copyWith =>
throw _privateConstructorUsedError;
}
/// @nodoc
abstract class $NameValueModelCopyWith<$Res> {
factory $NameValueModelCopyWith(
NameValueModel value, $Res Function(NameValueModel) then) =
_$NameValueModelCopyWithImpl<$Res, NameValueModel>;
@useResult
$Res call({String name, dynamic value});
}
/// @nodoc
class _$NameValueModelCopyWithImpl<$Res, $Val extends NameValueModel>
implements $NameValueModelCopyWith<$Res> {
_$NameValueModelCopyWithImpl(this._value, this._then);
// ignore: unused_field
final $Val _value;
// ignore: unused_field
final $Res Function($Val) _then;
@pragma('vm:prefer-inline')
@override
$Res call({
Object? name = null,
Object? value = freezed,
}) {
return _then(_value.copyWith(
name: null == name
? _value.name
: name // ignore: cast_nullable_to_non_nullable
as String,
value: freezed == value
? _value.value
: value // ignore: cast_nullable_to_non_nullable
as dynamic,
) as $Val);
}
}
/// @nodoc
abstract class _$$NameValueModelImplCopyWith<$Res>
implements $NameValueModelCopyWith<$Res> {
factory _$$NameValueModelImplCopyWith(_$NameValueModelImpl value,
$Res Function(_$NameValueModelImpl) then) =
__$$NameValueModelImplCopyWithImpl<$Res>;
@override
@useResult
$Res call({String name, dynamic value});
}
/// @nodoc
class __$$NameValueModelImplCopyWithImpl<$Res>
extends _$NameValueModelCopyWithImpl<$Res, _$NameValueModelImpl>
implements _$$NameValueModelImplCopyWith<$Res> {
__$$NameValueModelImplCopyWithImpl(
_$NameValueModelImpl _value, $Res Function(_$NameValueModelImpl) _then)
: super(_value, _then);
@pragma('vm:prefer-inline')
@override
$Res call({
Object? name = null,
Object? value = freezed,
}) {
return _then(_$NameValueModelImpl(
name: null == name
? _value.name
: name // ignore: cast_nullable_to_non_nullable
as String,
value: freezed == value
? _value.value
: value // ignore: cast_nullable_to_non_nullable
as dynamic,
));
}
}
/// @nodoc
@JsonSerializable()
class _$NameValueModelImpl
with DiagnosticableTreeMixin
implements _NameValueModel {
const _$NameValueModelImpl({required this.name, required this.value});
factory _$NameValueModelImpl.fromJson(Map<String, dynamic> json) =>
_$$NameValueModelImplFromJson(json);
@override
final String name;
@override
final dynamic value;
@override
String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
return 'NameValueModel(name: $name, value: $value)';
}
@override
void debugFillProperties(DiagnosticPropertiesBuilder properties) {
super.debugFillProperties(properties);
properties
..add(DiagnosticsProperty('type', 'NameValueModel'))
..add(DiagnosticsProperty('name', name))
..add(DiagnosticsProperty('value', value));
}
@override
bool operator ==(Object other) {
return identical(this, other) ||
(other.runtimeType == runtimeType &&
other is _$NameValueModelImpl &&
(identical(other.name, name) || other.name == name) &&
const DeepCollectionEquality().equals(other.value, value));
}
@JsonKey(ignore: true)
@override
int get hashCode => Object.hash(
runtimeType, name, const DeepCollectionEquality().hash(value));
@JsonKey(ignore: true)
@override
@pragma('vm:prefer-inline')
_$$NameValueModelImplCopyWith<_$NameValueModelImpl> get copyWith =>
__$$NameValueModelImplCopyWithImpl<_$NameValueModelImpl>(
this, _$identity);
@override
Map<String, dynamic> toJson() {
return _$$NameValueModelImplToJson(
this,
);
}
}
abstract class _NameValueModel implements NameValueModel {
const factory _NameValueModel(
{required final String name,
required final dynamic value}) = _$NameValueModelImpl;
factory _NameValueModel.fromJson(Map<String, dynamic> json) =
_$NameValueModelImpl.fromJson;
@override
String get name;
@override
dynamic get value;
@override
@JsonKey(ignore: true)
_$$NameValueModelImplCopyWith<_$NameValueModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View File

@ -0,0 +1,20 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'name_value_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
_$NameValueModelImpl _$$NameValueModelImplFromJson(Map<String, dynamic> json) =>
_$NameValueModelImpl(
name: json['name'] as String,
value: json['value'],
);
Map<String, dynamic> _$$NameValueModelImplToJson(
_$NameValueModelImpl instance) =>
<String, dynamic>{
'name': instance.name,
'value': instance.value,
};