feat: add authentication support with APIAuthType and APIAuthModel

- Introduced APIAuthType enum for various authentication methods.
- Created APIAuthModel with basic authentication fields.
- Updated RequestModel to include authType and authData.
- Implemented EditAuthType widget for selecting and managing authentication.
- Enhanced CollectionStateNotifier to handle authentication updates.

:wq
This commit is contained in:
Udhay-Adithya
2025-06-07 15:30:20 +05:30
parent e5b22a24fc
commit 171a118d38
15 changed files with 700 additions and 48 deletions

View File

@@ -24,6 +24,8 @@ mixin _$RequestModel {
APIType get apiType => throw _privateConstructorUsedError;
String get name => throw _privateConstructorUsedError;
String get description => throw _privateConstructorUsedError;
APIAuthType get authType => throw _privateConstructorUsedError;
APIAuthModel? get authData => throw _privateConstructorUsedError;
@JsonKey(includeToJson: false)
dynamic get requestTabIndex => throw _privateConstructorUsedError;
HttpRequestModel? get httpRequestModel => throw _privateConstructorUsedError;
@@ -59,6 +61,8 @@ abstract class $RequestModelCopyWith<$Res> {
APIType apiType,
String name,
String description,
APIAuthType authType,
APIAuthModel? authData,
@JsonKey(includeToJson: false) dynamic requestTabIndex,
HttpRequestModel? httpRequestModel,
int? responseStatus,
@@ -69,6 +73,7 @@ abstract class $RequestModelCopyWith<$Res> {
String? preRequestScript,
String? postRequestScript});
$APIAuthModelCopyWith<$Res>? get authData;
$HttpRequestModelCopyWith<$Res>? get httpRequestModel;
$HttpResponseModelCopyWith<$Res>? get httpResponseModel;
}
@@ -92,6 +97,8 @@ class _$RequestModelCopyWithImpl<$Res, $Val extends RequestModel>
Object? apiType = null,
Object? name = null,
Object? description = null,
Object? authType = null,
Object? authData = freezed,
Object? requestTabIndex = freezed,
Object? httpRequestModel = freezed,
Object? responseStatus = freezed,
@@ -119,6 +126,14 @@ class _$RequestModelCopyWithImpl<$Res, $Val extends RequestModel>
? _value.description
: description // ignore: cast_nullable_to_non_nullable
as String,
authType: null == authType
? _value.authType
: authType // ignore: cast_nullable_to_non_nullable
as APIAuthType,
authData: freezed == authData
? _value.authData
: authData // ignore: cast_nullable_to_non_nullable
as APIAuthModel?,
requestTabIndex: freezed == requestTabIndex
? _value.requestTabIndex
: requestTabIndex // ignore: cast_nullable_to_non_nullable
@@ -158,6 +173,20 @@ class _$RequestModelCopyWithImpl<$Res, $Val extends RequestModel>
) as $Val);
}
/// Create a copy of RequestModel
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$APIAuthModelCopyWith<$Res>? get authData {
if (_value.authData == null) {
return null;
}
return $APIAuthModelCopyWith<$Res>(_value.authData!, (value) {
return _then(_value.copyWith(authData: value) as $Val);
});
}
/// Create a copy of RequestModel
/// with the given fields replaced by the non-null parameter values.
@override
@@ -200,6 +229,8 @@ abstract class _$$RequestModelImplCopyWith<$Res>
APIType apiType,
String name,
String description,
APIAuthType authType,
APIAuthModel? authData,
@JsonKey(includeToJson: false) dynamic requestTabIndex,
HttpRequestModel? httpRequestModel,
int? responseStatus,
@@ -210,6 +241,8 @@ abstract class _$$RequestModelImplCopyWith<$Res>
String? preRequestScript,
String? postRequestScript});
@override
$APIAuthModelCopyWith<$Res>? get authData;
@override
$HttpRequestModelCopyWith<$Res>? get httpRequestModel;
@override
@@ -233,6 +266,8 @@ class __$$RequestModelImplCopyWithImpl<$Res>
Object? apiType = null,
Object? name = null,
Object? description = null,
Object? authType = null,
Object? authData = freezed,
Object? requestTabIndex = freezed,
Object? httpRequestModel = freezed,
Object? responseStatus = freezed,
@@ -260,6 +295,14 @@ class __$$RequestModelImplCopyWithImpl<$Res>
? _value.description
: description // ignore: cast_nullable_to_non_nullable
as String,
authType: null == authType
? _value.authType
: authType // ignore: cast_nullable_to_non_nullable
as APIAuthType,
authData: freezed == authData
? _value.authData
: authData // ignore: cast_nullable_to_non_nullable
as APIAuthModel?,
requestTabIndex: freezed == requestTabIndex
? _value.requestTabIndex!
: requestTabIndex,
@@ -308,6 +351,8 @@ class _$RequestModelImpl implements _RequestModel {
this.apiType = APIType.rest,
this.name = "",
this.description = "",
this.authType = APIAuthType.none,
this.authData,
@JsonKey(includeToJson: false) this.requestTabIndex = 0,
this.httpRequestModel,
this.responseStatus,
@@ -333,6 +378,11 @@ class _$RequestModelImpl implements _RequestModel {
@JsonKey()
final String description;
@override
@JsonKey()
final APIAuthType authType;
@override
final APIAuthModel? authData;
@override
@JsonKey(includeToJson: false)
final dynamic requestTabIndex;
@override
@@ -356,7 +406,7 @@ class _$RequestModelImpl implements _RequestModel {
@override
String toString() {
return 'RequestModel(id: $id, apiType: $apiType, name: $name, description: $description, requestTabIndex: $requestTabIndex, httpRequestModel: $httpRequestModel, responseStatus: $responseStatus, message: $message, httpResponseModel: $httpResponseModel, isWorking: $isWorking, sendingTime: $sendingTime, preRequestScript: $preRequestScript, postRequestScript: $postRequestScript)';
return 'RequestModel(id: $id, apiType: $apiType, name: $name, description: $description, authType: $authType, authData: $authData, requestTabIndex: $requestTabIndex, httpRequestModel: $httpRequestModel, responseStatus: $responseStatus, message: $message, httpResponseModel: $httpResponseModel, isWorking: $isWorking, sendingTime: $sendingTime)';
}
@override
@@ -369,6 +419,10 @@ class _$RequestModelImpl implements _RequestModel {
(identical(other.name, name) || other.name == name) &&
(identical(other.description, description) ||
other.description == description) &&
(identical(other.authType, authType) ||
other.authType == authType) &&
(identical(other.authData, authData) ||
other.authData == authData) &&
const DeepCollectionEquality()
.equals(other.requestTabIndex, requestTabIndex) &&
(identical(other.httpRequestModel, httpRequestModel) ||
@@ -396,6 +450,8 @@ class _$RequestModelImpl implements _RequestModel {
apiType,
name,
description,
authType,
authData,
const DeepCollectionEquality().hash(requestTabIndex),
httpRequestModel,
responseStatus,
@@ -424,19 +480,20 @@ class _$RequestModelImpl implements _RequestModel {
abstract class _RequestModel implements RequestModel {
const factory _RequestModel(
{required final String id,
final APIType apiType,
final String name,
final String description,
@JsonKey(includeToJson: false) final dynamic requestTabIndex,
final HttpRequestModel? httpRequestModel,
final int? responseStatus,
final String? message,
final HttpResponseModel? httpResponseModel,
@JsonKey(includeToJson: false) final bool isWorking,
@JsonKey(includeToJson: false) final DateTime? sendingTime,
final String? preRequestScript,
final String? postRequestScript}) = _$RequestModelImpl;
{required final String id,
final APIType apiType,
final String name,
final String description,
final APIAuthType authType,
final APIAuthModel? authData,
@JsonKey(includeToJson: false) final dynamic requestTabIndex,
final HttpRequestModel? httpRequestModel,
final int? responseStatus,
final String? message,
final HttpResponseModel? httpResponseModel,
@JsonKey(includeToJson: false) final bool isWorking,
@JsonKey(includeToJson: false) final DateTime? sendingTime}) =
_$RequestModelImpl;
factory _RequestModel.fromJson(Map<String, dynamic> json) =
_$RequestModelImpl.fromJson;
@@ -450,6 +507,10 @@ abstract class _RequestModel implements RequestModel {
@override
String get description;
@override
APIAuthType get authType;
@override
APIAuthModel? get authData;
@override
@JsonKey(includeToJson: false)
dynamic get requestTabIndex;
@override