TF-3040 Create public_asset feature

This commit is contained in:
DatDang
2024-08-07 11:17:59 +07:00
committed by Dat H. Pham
parent 34b7bf78c3
commit 0656fd9390
6 changed files with 349 additions and 0 deletions
@@ -0,0 +1,57 @@
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:jmap_dart_client/jmap/mail/extensions/public_asset/public_asset.dart';
import 'package:tmail_ui_user/features/public_asset/data/datasource/public_asset_datasource.dart';
import 'package:tmail_ui_user/features/public_asset/domain/repository/public_asset_repository.dart';
class PublicAssetRepositoryImpl implements PublicAssetRepository {
const PublicAssetRepositoryImpl(this._publicAssetDatasource);
final PublicAssetDatasource _publicAssetDatasource;
@override
Future<List<PublicAsset>> getPublicAssetsFromIds(
Session session,
AccountId accountId,
{required List<Id> publicAssetIds}
) => _publicAssetDatasource.getPublicAssetFromIds(
session,
accountId,
publicAssetIds: publicAssetIds);
@override
Future<void> deletePublicAssets(
Session session,
AccountId accountId,
{required List<Id> publicAssetIds}
) => _publicAssetDatasource.deletePublicAssets(
session,
accountId,
publicAssetIds: publicAssetIds);
@override
Future<PublicAsset> createPublicAsset(
Session session,
AccountId accountId,
{
required Id blobId,
required IdentityId? identityId
}
) => _publicAssetDatasource.createPublicAsset(
session,
accountId,
blobId: blobId,
identityId: identityId);
@override
Future<void> updatePublicAssets(
Session session,
AccountId accountId,
{required List<PublicAsset> publicAssets}
) => _publicAssetDatasource.updatePublicAssets(
session,
accountId,
publicAssets: publicAssets);
}