loginDataSource top-level constant

String const loginDataSource

Implementation

const loginDataSource = """
import 'package:dartz/dartz.dart';

import '../../../../core/base/model/error_model/base_error_model.dart';
import '../../../../core/consts/end_point/app_end_points.dart';
import '../../../../core/consts/enum/http_type_enums.dart';
import '../../../../core/services/network/mapper/api_model_mapper.dart';
import '../../../../core/services/network/network_service.dart';
import '../models/login_request/login_request_model.dart';
import '../models/login_response/login_response_model.dart';

abstract class LoginRemoteDataSource {
  Future<Either<BaseErrorModel, LoginResponseModel>> login(LoginRequestModel model);
}

class LoginRemoteDataSourceImpl extends LoginRemoteDataSource {
  final NetworkService _networkService;

  LoginRemoteDataSourceImpl(this._networkService);

  @override
  Future<Either<BaseErrorModel, LoginResponseModel>> login(LoginRequestModel model) async {
    return await _networkService(
      AppEndpoints.getData,
      httpTypes: HttpTypes.get,
      data: model.toJson(),
      mapper: (json) => APIModelMapper.jsonToItem(json, LoginResponseModel.fromJson),
    );
  }
}
""";