remoteSourceTemplate function
Implementation
String remoteSourceTemplate(String feature) => '''
import 'package:dartz/dartz.dart';
import 'package:injectable/injectable.dart';
import 'package:workplanx/src/core/development/logger.dart';
import 'package:workplanx/src/core/enums/enums.dart';
import 'package:workplanx/src/core/local_storage/secure_storage.dart';
import 'package:workplanx/src/core/network/api_client.dart';
import 'package:workplanx/src/core/network/api_failure.dart';
import '../../data/endpoints/${feature}_endpoints.dart';
import '../../data/model/response/${feature}_response.dart';
import '../../data/model/request/${feature}_request.dart';
@LazySingleton()
class ${_cap(feature)}RemoteSource {
${_cap(feature)}RemoteSource(this._secureStorageService, this._apiClient);
final SecureStorageService _secureStorageService;
final ApiClient _apiClient;
Future<Either<Failure, ${_cap(feature)}Response>> fetch${_cap(feature)}s({
Fetch${_cap(feature)}Query? queryParam,
}) async {
final workspaceId = await _secureStorageService.getWorkspaceId;
if (workspaceId == null) {
return const Left(GeneralFailure('Workspace ID not found'));
}
final apiEndpoint = ${_cap(feature)}Endpoints.fetch${_cap(feature)}s(workspaceId: workspaceId);
final response = await _apiClient.get<Map<String, dynamic>>(apiEndpoint, queryParams: queryParam?.toJson());
return response.fold(
Left.new,
(result) => Right(${feature}ResponseFromJson(result)),
);
}
}
''';