Skip to content

Commit

Permalink
Chore/bump runtime (#278)
Browse files Browse the repository at this point in the history
* chore: bump runtime

* fix: adapt sdk

* fix: adapt types

* fix: adapt facades

* fix: update tests

* fix: update app code
  • Loading branch information
jkoenig134 authored Sep 24, 2024
1 parent f05e0c8 commit 62661b5
Show file tree
Hide file tree
Showing 27 changed files with 176 additions and 427 deletions.
2 changes: 1 addition & 1 deletion apps/enmeshed/lib/core/utils/file_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Future<FileDVO> expandFileReference({
}) async {
final session = GetIt.I.get<EnmeshedRuntime>().getSession(accountId);

final fileDTO = await session.transportServices.files.getOrLoadFileByReference(reference: fileReference);
final fileDTO = await session.transportServices.files.getOrLoadFile(reference: fileReference);
final expanded = await session.expander.expandFileDTO(fileDTO.value);
return expanded;
}
Expand Down
8 changes: 1 addition & 7 deletions packages/connector_sdk/lib/src/endpoints/files_endpoint.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,14 @@ class FilesEndpoint extends Endpoint {
query: query,
);

Future<ConnectorResponse<FileDTO>> loadPeerFileByTruncatedReference({required String truncatedReference}) => post(
Future<ConnectorResponse<FileDTO>> loadPeerFile({required String truncatedReference}) => post(
'/api/v2/Files/Peer',
transformer: fileTransformer,
data: {
'reference': truncatedReference,
},
);

Future<ConnectorResponse<FileDTO>> loadPeerFileByIdAndKey({required String id, required String secretKey}) => post(
'/api/v2/Files/Peer',
transformer: fileTransformer,
data: {'id': id, 'secretKey': secretKey},
);

Future<ConnectorResponse<List<FileDTO>>> getPeerFiles([Map<String, dynamic>? query]) => get(
'/api/v2/Files/Peer',
transformer: fileListTransformer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,20 +64,11 @@ class RelationshipTemplatesEndpoint extends Endpoint {
transformer: relationshipTemplateListTransformer,
);

Future<ConnectorResponse<RelationshipTemplateDTO>> loadPeerRelationshipTemplateByTruncatedReference(String truncatedReference) => post(
Future<ConnectorResponse<RelationshipTemplateDTO>> loadPeerRelationshipTemplate(String truncatedReference) => post(
'/api/v2/RelationshipTemplates/Peer',
data: {
'reference': truncatedReference,
},
transformer: relationshipTemplateTransformer,
);

Future<ConnectorResponse<RelationshipTemplateDTO>> loadPeerRelationshipTemplateByIdAndKey({required String id, required String secretKey}) => post(
'/api/v2/RelationshipTemplates/Peer',
data: {
'id': id,
'key': secretKey,
},
transformer: relationshipTemplateTransformer,
);
}
12 changes: 1 addition & 11 deletions packages/connector_sdk/lib/src/endpoints/tokens_endpoint.dart
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,12 @@ class TokensEndpoint extends Endpoint {
transformer: tokenListTransformer,
);

Future<ConnectorResponse<TokenDTO>> loadPeerTokenByTruncatedReference({required String reference, bool? ephemeral}) => post(
Future<ConnectorResponse<TokenDTO>> loadPeerToken({required String reference, bool? ephemeral}) => post(
'/api/v2/Tokens/Peer',
data: {
'reference': reference,
if (ephemeral != null) 'ephemeral': ephemeral,
},
transformer: tokenTransformer,
);

Future<ConnectorResponse<TokenDTO>> loadPeerTokenByIdAndKey({required String id, required String secretKey, bool? ephemeral}) => post(
'/api/v2/Tokens/Peer',
data: {
'id': id,
'secretKey': secretKey,
if (ephemeral != null) 'ephemeral': ephemeral,
},
transformer: tokenTransformer,
);
}
2 changes: 1 addition & 1 deletion packages/enmeshed_runtime_bridge/assets/index.js

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,8 @@ void run(EnmeshedRuntime runtime) {
});

group('AnonymousTokensFacade', () {
test('should load a Token by id any key', () async {
final result = await runtime.anonymousServices.tokens.loadPeerTokenByIdAndKey(uploadedToken.id, uploadedToken.secretKey);
expect(result, isSuccessful<TokenDTO>());

final token = result.value;
expect(token.id, equals(uploadedToken.id));
expect(token.content, equals(uploadedToken.content));
});

test('should fail to load a Token by truncated reference', () async {
final result = await runtime.anonymousServices.tokens.loadPeerTokenByTruncatedReference(uploadedToken.truncatedReference);
test('should load a Token by truncatedReference', () async {
final result = await runtime.anonymousServices.tokens.loadPeerToken(uploadedToken.truncatedReference);
expect(result, isSuccessful<TokenDTO>());

final token = result.value;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,8 +263,9 @@ void run(EnmeshedRuntime runtime) {
});

test('recipient: load the Relationship Template with the Request', () async {
final result = await recipient.transportServices.relationshipTemplates
.loadPeerRelationshipTemplateByReference(reference: sRelationshipTemplate.truncatedReference);
final result = await recipient.transportServices.relationshipTemplates.loadPeerRelationshipTemplate(
reference: sRelationshipTemplate.truncatedReference,
);

expect(result, isSuccessful<RelationshipTemplateDTO>());

Expand Down Expand Up @@ -357,8 +358,9 @@ void run(EnmeshedRuntime runtime) {
});

test('recipient: load the Relationship Template with the Request', () async {
final result = await recipient.transportServices.relationshipTemplates
.loadPeerRelationshipTemplateByReference(reference: sRelationshipTemplate.truncatedReference);
final result = await recipient.transportServices.relationshipTemplates.loadPeerRelationshipTemplate(
reference: sRelationshipTemplate.truncatedReference,
);

expect(result, isSuccessful<RelationshipTemplateDTO>());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,43 +110,22 @@ void run(EnmeshedRuntime runtime) {
});
});

group('FilesFacade: getOrLoadFileByIdAndKey', () {
test('should be able to load files by entering id and key', () async {
final fileResult = await session.transportServices.files.getOrLoadFileByIdAndKey(fileId: globalFile.id, secretKey: globalFile.secretKey);

expect(fileResult, isSuccessful<FileDTO>());
expect(fileResult.value.id, globalFile.id);
});

test('throws an exception if file id does not match the pattern', () async {
final result = await session.transportServices.files.getOrLoadFileByIdAndKey(fileId: '', secretKey: globalFile.secretKey);

expect(result, isFailing('error.runtime.validation.invalidPropertyValue'));
});

test('throws an exception if secret key does not match the pattern', () async {
final result = await session.transportServices.files.getOrLoadFileByIdAndKey(fileId: globalFile.id, secretKey: '');

expect(result, isFailing('error.runtime.validation.invalidPropertyValue'));
});
});

group('FilesFacade: getOrLoadFileByReference', () {
group('FilesFacade: getOrLoadFile', () {
test('should be able to load files by entering reference', () async {
final fileResult = await session.transportServices.files.getOrLoadFileByReference(reference: globalFile.truncatedReference);
final fileResult = await session.transportServices.files.getOrLoadFile(reference: globalFile.truncatedReference);

expect(fileResult, isSuccessful<FileDTO>());
expect(fileResult.value.id, globalFile.id);
});

test('throws an exception if reference does not match the pattern', () async {
final result = await session.transportServices.files.getOrLoadFileByReference(reference: '');
final result = await session.transportServices.files.getOrLoadFile(reference: '');

expect(result, isFailing('error.runtime.validation.invalidPropertyValue'));
});

test('throws an exception on not existing reference', () async {
final result = await session.transportServices.files.getOrLoadFileByReference(
final result = await session.transportServices.files.getOrLoadFile(
reference: 'RklMTG93cDV2Yk5JaUh6QWZ5aGp8M3xKZ2h6dXFKa003TW1Id0hyb3k3akd3dmdleXFXVEdVd3h2QWUwWlRBeXXX',
);

Expand Down Expand Up @@ -224,7 +203,7 @@ void run(EnmeshedRuntime runtime) {

expect(tokenResult, isSuccessful<TokenDTO>());

final responseResult = await session2.transportServices.files.getOrLoadFileByReference(reference: tokenResult.value.truncatedReference);
final responseResult = await session2.transportServices.files.getOrLoadFile(reference: tokenResult.value.truncatedReference);

expect(responseResult, isSuccessful<FileDTO>());
expect(responseResult.value.isOwn, false);
Expand All @@ -241,7 +220,7 @@ void run(EnmeshedRuntime runtime) {

expect(tokenResult, isSuccessful<TokenDTO>());

final responseResult = await session2.transportServices.files.getOrLoadFileByReference(reference: tokenResult.value.truncatedReference);
final responseResult = await session2.transportServices.files.getOrLoadFile(reference: tokenResult.value.truncatedReference);
final response = responseResult.value;

expect(tokenResult.value.expiresAt, expiresAt);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,30 +54,7 @@ void run(EnmeshedRuntime runtime) {
});
});

group('RelationshipTemplatesFacade: loadPeerRelationshipTemplateByIdAndKey', () {
test('should allow to load template of peer by entering id and key', () async {
final expiresAt = generateExpiryString();
final content = ArbitraryRelationshipTemplateContent(const {'aKey': 'aValue'});

final responseTemplate = await session2.transportServices.relationshipTemplates.createOwnRelationshipTemplate(
expiresAt: expiresAt,
content: content,
);

final templateResult = await session1.transportServices.relationshipTemplates.loadPeerRelationshipTemplateByIdAndKey(
relationshipTemplateId: responseTemplate.value.id,
secretKey: responseTemplate.value.secretKey,
);

expect(templateResult, isSuccessful<RelationshipTemplateDTO>());
expect(templateResult.value.expiresAt, expiresAt);
expect(templateResult.value.content, content);
expect(templateResult.value.id, responseTemplate.value.id);
expect(templateResult.value.secretKey, responseTemplate.value.secretKey);
});
});

group('RelationshipTemplatesFacade: loadPeerRelationshipTemplateByReference', () {
group('RelationshipTemplatesFacade: loadPeerRelationshipTemplate', () {
test('should allow to load template of peer by entering reference', () async {
final expiresAt = generateExpiryString();
final content = ArbitraryRelationshipTemplateContent(const {'aKey': 'aValue'});
Expand All @@ -87,7 +64,7 @@ void run(EnmeshedRuntime runtime) {
content: content,
);

final templateResult = await session1.transportServices.relationshipTemplates.loadPeerRelationshipTemplateByReference(
final templateResult = await session1.transportServices.relationshipTemplates.loadPeerRelationshipTemplate(
reference: responseTemplate.value.truncatedReference,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,52 +53,7 @@ void run(EnmeshedRuntime runtime) {
});
});

group('TokensFacade: loadPeerTokenByIdAndKey', () {
test('should load a Token', () async {
final expiry = generateExpiryString();

final token = await session1.transportServices.tokens.createOwnToken(
content: {'test': 'test'},
expiresAt: expiry,
ephemeral: false,
);

final peerToken = await session2.transportServices.tokens.loadPeerTokenByIdAndKey(
id: token.value.id,
secretKey: token.value.secretKey,
ephemeral: false,
);

expect(peerToken, isSuccessful<TokenDTO>());
expect(peerToken.value.content, equals({'test': 'test'}));
expect(peerToken.value.expiresAt, equals(expiry));
});

test('should load a Token ephemeral', () async {
final expiry = generateExpiryString();

final token = await session1.transportServices.tokens.createOwnToken(
content: {'test': 'test'},
expiresAt: expiry,
ephemeral: true,
);

final peerToken = await session2.transportServices.tokens.loadPeerTokenByIdAndKey(
id: token.value.id,
secretKey: token.value.secretKey,
ephemeral: true,
);

expect(peerToken, isSuccessful<TokenDTO>());
expect(peerToken.value.content, equals({'test': 'test'}));
expect(peerToken.value.expiresAt, equals(expiry));

final result = await session2.transportServices.tokens.getToken(token.value.id);
expect(result, isFailing('error.runtime.recordNotFound'));
});
});

group('TokensFacade: loadPeerTokenByReference', () {
group('TokensFacade: loadPeerToken', () {
test('should load a Token', () async {
final expiry = generateExpiryString();

Expand All @@ -108,7 +63,7 @@ void run(EnmeshedRuntime runtime) {
ephemeral: true,
);

final peerToken = await session2.transportServices.tokens.loadPeerTokenByReference(
final peerToken = await session2.transportServices.tokens.loadPeerToken(
reference: token.value.truncatedReference,
ephemeral: false,
);
Expand All @@ -127,7 +82,7 @@ void run(EnmeshedRuntime runtime) {
ephemeral: true,
);

final peerToken = await session2.transportServices.tokens.loadPeerTokenByReference(
final peerToken = await session2.transportServices.tokens.loadPeerToken(
reference: token.value.truncatedReference,
ephemeral: true,
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ Future<RelationshipDTO> establishRelationshipBetweenSessionsAndSync(Session sess
expiresAt: DateTime.now().add(const Duration(minutes: 5)).toRuntimeIsoString(),
content: emptyRelationshipTemplateContent,
);
final connectorLoadTemplateResult = await session2.transportServices.relationshipTemplates.loadPeerRelationshipTemplateByReference(
final connectorLoadTemplateResult = await session2.transportServices.relationshipTemplates.loadPeerRelationshipTemplate(
reference: createTemplateResult.value.truncatedReference,
);
assert(connectorLoadTemplateResult.isSuccess);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ class AnonymousTokensFacade {
final AbstractEvaluator _evaluator;
AnonymousTokensFacade(this._evaluator);

Future<Result<TokenDTO>> loadPeerTokenByTruncatedReference(
Future<Result<TokenDTO>> loadPeerToken(
String tokenReference,
) async {
final result = await _evaluator.evaluateJavaScript(
'''const result = await runtime.anonymousServices.tokens.loadPeerTokenByTruncatedReference(request)
'''const result = await runtime.anonymousServices.tokens.loadPeerToken(request)
if (result.isError) return { error: { message: result.error.message, code: result.error.code } }
return { value: result.value }''',
arguments: {
Expand All @@ -25,21 +25,4 @@ class AnonymousTokensFacade {
final value = result.valueToMap();
return Result.fromJson(value, (x) => TokenDTO.fromJson(x));
}

Future<Result<TokenDTO>> loadPeerTokenByIdAndKey(String id, String secretKey) async {
final result = await _evaluator.evaluateJavaScript(
'''const result = await runtime.anonymousServices.tokens.loadPeerTokenByIdAndKey(request)
if (result.isError) return { error: { message: result.error.message, code: result.error.code } }
return { value: result.value }''',
arguments: {
'request': {
'id': id,
'secretKey': secretKey,
},
},
);

final value = result.valueToMap();
return Result.fromJson(value, (x) => TokenDTO.fromJson(x));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,27 +24,7 @@ class FilesFacade {
return Result.fromJson(json, (value) => List<FileDTO>.from(value.map((e) => FileDTO.fromJson(e))));
}

Future<Result<FileDTO>> getOrLoadFileByIdAndKey({
required String fileId,
required String secretKey,
}) async {
final result = await _evaluator.evaluateJavaScript(
'''const result = await session.transportServices.files.getOrLoadFile(request)
if (result.isError) return { error: { message: result.error.message, code: result.error.code } }
return { value: result.value }''',
arguments: {
'request': {
'id': fileId,
'secretKey': secretKey,
},
},
);

final value = result.valueToMap();
return Result.fromJson(value, (x) => FileDTO.fromJson(x));
}

Future<Result<FileDTO>> getOrLoadFileByReference({
Future<Result<FileDTO>> getOrLoadFile({
required String reference,
}) async {
final result = await _evaluator.evaluateJavaScript(
Expand Down
Loading

0 comments on commit 62661b5

Please sign in to comment.