Skip to content

Commit

Permalink
feature: Add HasValidCredential method to the ConnectService (#1585)
Browse files Browse the repository at this point in the history
Co-authored-by: lucasamonrc <lucasamonrc@users.noreply.github.com>
Co-authored-by: mewmba <mewmba@users.noreply.github.com>
  • Loading branch information
3 people committed Nov 30, 2023
1 parent 8e92c7f commit 892feee
Show file tree
Hide file tree
Showing 26 changed files with 3,893 additions and 333 deletions.
8 changes: 8 additions & 0 deletions dart/lib/src/connect_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,13 @@ class ConnectService extends ServiceBase {
return client.listSessions(request,
options: await buildMetadata(request: request));
}

Future<HasValidCredentialResponse> hasValidCredential(
HasValidCredentialRequest request) async {
/// Checks if the identity provided in the request has a wallet containing a valid reusable credential
return client.hasValidCredential(request,
options: await buildMetadata(request: request));
}
// END Code generated by protoc-gen-trinsic. DO NOT EDIT.
}
228 changes: 228 additions & 0 deletions dart/lib/src/proto/services/connect/v1/connect.pb.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import 'package:fixnum/fixnum.dart' as $fixnum;
import 'package:protobuf/protobuf.dart' as $pb;

import '../../common/v1/common.pbenum.dart' as $9;
import '../../universal-wallet/v1/universal-wallet.pb.dart' as $2;
import 'connect.pbenum.dart';

export 'connect.pbenum.dart';
Expand Down Expand Up @@ -1617,6 +1618,233 @@ class ListSessionsResponse extends $pb.GeneratedMessage {
void clearMore() => clearField(3);
}

/// Request to preemptively check if an identity has a valid reusable credential
class HasValidCredentialRequest extends $pb.GeneratedMessage {
factory HasValidCredentialRequest({
$2.CreateWalletRequest_ExternalIdentity? identity,
CredentialRequestData? credentialRequestData,
}) {
final $result = create();
if (identity != null) {
$result.identity = identity;
}
if (credentialRequestData != null) {
$result.credentialRequestData = credentialRequestData;
}
return $result;
}
HasValidCredentialRequest._() : super();
factory HasValidCredentialRequest.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
factory HasValidCredentialRequest.fromJson($core.String i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(i, r);

static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'HasValidCredentialRequest',
package:
const $pb.PackageName(_omitMessageNames ? '' : 'services.connect.v1'),
createEmptyInstance: create)
..aOM<$2.CreateWalletRequest_ExternalIdentity>(
1, _omitFieldNames ? '' : 'identity',
subBuilder: $2.CreateWalletRequest_ExternalIdentity.create)
..aOM<CredentialRequestData>(
2, _omitFieldNames ? '' : 'credentialRequestData',
subBuilder: CredentialRequestData.create)
..hasRequiredFields = false;

@$core.Deprecated('Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
'Will be removed in next major version')
HasValidCredentialRequest clone() =>
HasValidCredentialRequest()..mergeFromMessage(this);
@$core.Deprecated('Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
HasValidCredentialRequest copyWith(
void Function(HasValidCredentialRequest) updates) =>
super.copyWith((message) => updates(message as HasValidCredentialRequest))
as HasValidCredentialRequest;

$pb.BuilderInfo get info_ => _i;

@$core.pragma('dart2js:noInline')
static HasValidCredentialRequest create() => HasValidCredentialRequest._();
HasValidCredentialRequest createEmptyInstance() => create();
static $pb.PbList<HasValidCredentialRequest> createRepeated() =>
$pb.PbList<HasValidCredentialRequest>();
@$core.pragma('dart2js:noInline')
static HasValidCredentialRequest getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<HasValidCredentialRequest>(create);
static HasValidCredentialRequest? _defaultInstance;

/// The the identity used to find a credential for
@$pb.TagNumber(1)
$2.CreateWalletRequest_ExternalIdentity get identity => $_getN(0);
@$pb.TagNumber(1)
set identity($2.CreateWalletRequest_ExternalIdentity v) {
setField(1, v);
}

@$pb.TagNumber(1)
$core.bool hasIdentity() => $_has(0);
@$pb.TagNumber(1)
void clearIdentity() => clearField(1);
@$pb.TagNumber(1)
$2.CreateWalletRequest_ExternalIdentity ensureIdentity() => $_ensure(0);

/// The criteria used to find a valid credential
@$pb.TagNumber(2)
CredentialRequestData get credentialRequestData => $_getN(1);
@$pb.TagNumber(2)
set credentialRequestData(CredentialRequestData v) {
setField(2, v);
}

@$pb.TagNumber(2)
$core.bool hasCredentialRequestData() => $_has(1);
@$pb.TagNumber(2)
void clearCredentialRequestData() => clearField(2);
@$pb.TagNumber(2)
CredentialRequestData ensureCredentialRequestData() => $_ensure(1);
}

/// Response to `HasValidCredentialRequest`
class HasValidCredentialResponse extends $pb.GeneratedMessage {
factory HasValidCredentialResponse({
$core.bool? hasValidCredential,
}) {
final $result = create();
if (hasValidCredential != null) {
$result.hasValidCredential = hasValidCredential;
}
return $result;
}
HasValidCredentialResponse._() : super();
factory HasValidCredentialResponse.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
factory HasValidCredentialResponse.fromJson($core.String i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(i, r);

static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'HasValidCredentialResponse',
package:
const $pb.PackageName(_omitMessageNames ? '' : 'services.connect.v1'),
createEmptyInstance: create)
..aOB(1, _omitFieldNames ? '' : 'hasValidCredential')
..hasRequiredFields = false;

@$core.Deprecated('Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
'Will be removed in next major version')
HasValidCredentialResponse clone() =>
HasValidCredentialResponse()..mergeFromMessage(this);
@$core.Deprecated('Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
HasValidCredentialResponse copyWith(
void Function(HasValidCredentialResponse) updates) =>
super.copyWith(
(message) => updates(message as HasValidCredentialResponse))
as HasValidCredentialResponse;

$pb.BuilderInfo get info_ => _i;

@$core.pragma('dart2js:noInline')
static HasValidCredentialResponse create() => HasValidCredentialResponse._();
HasValidCredentialResponse createEmptyInstance() => create();
static $pb.PbList<HasValidCredentialResponse> createRepeated() =>
$pb.PbList<HasValidCredentialResponse>();
@$core.pragma('dart2js:noInline')
static HasValidCredentialResponse getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<HasValidCredentialResponse>(create);
static HasValidCredentialResponse? _defaultInstance;

/// Whether the identity has a valid credential
@$pb.TagNumber(1)
$core.bool get hasValidCredential => $_getBF(0);
@$pb.TagNumber(1)
set hasValidCredential($core.bool v) {
$_setBool(0, v);
}

@$pb.TagNumber(1)
$core.bool hasHasValidCredential() => $_has(0);
@$pb.TagNumber(1)
void clearHasValidCredential() => clearField(1);
}

class CredentialRequestData extends $pb.GeneratedMessage {
factory CredentialRequestData({
VerificationType? type,
}) {
final $result = create();
if (type != null) {
$result.type = type;
}
return $result;
}
CredentialRequestData._() : super();
factory CredentialRequestData.fromBuffer($core.List<$core.int> i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromBuffer(i, r);
factory CredentialRequestData.fromJson($core.String i,
[$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
create()..mergeFromJson(i, r);

static final $pb.BuilderInfo _i = $pb.BuilderInfo(
_omitMessageNames ? '' : 'CredentialRequestData',
package:
const $pb.PackageName(_omitMessageNames ? '' : 'services.connect.v1'),
createEmptyInstance: create)
..e<VerificationType>(1, _omitFieldNames ? '' : 'type', $pb.PbFieldType.OE,
defaultOrMaker: VerificationType.GOVERNMENT_ID,
valueOf: VerificationType.valueOf,
enumValues: VerificationType.values)
..hasRequiredFields = false;

@$core.Deprecated('Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
'Will be removed in next major version')
CredentialRequestData clone() =>
CredentialRequestData()..mergeFromMessage(this);
@$core.Deprecated('Using this can add significant overhead to your binary. '
'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
'Will be removed in next major version')
CredentialRequestData copyWith(
void Function(CredentialRequestData) updates) =>
super.copyWith((message) => updates(message as CredentialRequestData))
as CredentialRequestData;

$pb.BuilderInfo get info_ => _i;

@$core.pragma('dart2js:noInline')
static CredentialRequestData create() => CredentialRequestData._();
CredentialRequestData createEmptyInstance() => create();
static $pb.PbList<CredentialRequestData> createRepeated() =>
$pb.PbList<CredentialRequestData>();
@$core.pragma('dart2js:noInline')
static CredentialRequestData getDefault() => _defaultInstance ??=
$pb.GeneratedMessage.$_defaultFor<CredentialRequestData>(create);
static CredentialRequestData? _defaultInstance;

/// The type of verification which the credential can be used for
@$pb.TagNumber(1)
VerificationType get type => $_getN(0);
@$pb.TagNumber(1)
set type(VerificationType v) {
setField(1, v);
}

@$pb.TagNumber(1)
$core.bool hasType() => $_has(0);
@$pb.TagNumber(1)
void clearType() => clearField(1);
}

const _omitFieldNames = $core.bool.fromEnvironment('protobuf.omit_field_names');
const _omitMessageNames =
$core.bool.fromEnvironment('protobuf.omit_message_names');
29 changes: 29 additions & 0 deletions dart/lib/src/proto/services/connect/v1/connect.pbgrpc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ class ConnectClient extends $grpc.Client {
($3.ListSessionsRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) =>
$3.ListSessionsResponse.fromBuffer(value));
static final _$hasValidCredential = $grpc.ClientMethod<
$3.HasValidCredentialRequest, $3.HasValidCredentialResponse>(
'/services.connect.v1.Connect/HasValidCredential',
($3.HasValidCredentialRequest value) => value.writeToBuffer(),
($core.List<$core.int> value) =>
$3.HasValidCredentialResponse.fromBuffer(value));

ConnectClient($grpc.ClientChannel channel,
{$grpc.CallOptions? options,
Expand Down Expand Up @@ -74,6 +80,12 @@ class ConnectClient extends $grpc.Client {
{$grpc.CallOptions? options}) {
return $createUnaryCall(_$listSessions, request, options: options);
}

$grpc.ResponseFuture<$3.HasValidCredentialResponse> hasValidCredential(
$3.HasValidCredentialRequest request,
{$grpc.CallOptions? options}) {
return $createUnaryCall(_$hasValidCredential, request, options: options);
}
}

@$pb.GrpcServiceName('services.connect.v1.Connect')
Expand Down Expand Up @@ -115,6 +127,15 @@ abstract class ConnectServiceBase extends $grpc.Service {
($core.List<$core.int> value) =>
$3.ListSessionsRequest.fromBuffer(value),
($3.ListSessionsResponse value) => value.writeToBuffer()));
$addMethod($grpc.ServiceMethod<$3.HasValidCredentialRequest,
$3.HasValidCredentialResponse>(
'HasValidCredential',
hasValidCredential_Pre,
false,
false,
($core.List<$core.int> value) =>
$3.HasValidCredentialRequest.fromBuffer(value),
($3.HasValidCredentialResponse value) => value.writeToBuffer()));
}

$async.Future<$3.CreateSessionResponse> createSession_Pre(
Expand All @@ -140,6 +161,12 @@ abstract class ConnectServiceBase extends $grpc.Service {
return listSessions(call, await request);
}

$async.Future<$3.HasValidCredentialResponse> hasValidCredential_Pre(
$grpc.ServiceCall call,
$async.Future<$3.HasValidCredentialRequest> request) async {
return hasValidCredential(call, await request);
}

$async.Future<$3.CreateSessionResponse> createSession(
$grpc.ServiceCall call, $3.CreateSessionRequest request);
$async.Future<$3.CancelSessionResponse> cancelSession(
Expand All @@ -148,4 +175,6 @@ abstract class ConnectServiceBase extends $grpc.Service {
$grpc.ServiceCall call, $3.GetSessionRequest request);
$async.Future<$3.ListSessionsResponse> listSessions(
$grpc.ServiceCall call, $3.ListSessionsRequest request);
$async.Future<$3.HasValidCredentialResponse> hasValidCredential(
$grpc.ServiceCall call, $3.HasValidCredentialRequest request);
}
70 changes: 70 additions & 0 deletions dart/lib/src/proto/services/connect/v1/connect.pbjson.dart
Original file line number Diff line number Diff line change
Expand Up @@ -624,3 +624,73 @@ final $typed_data.Uint8List listSessionsResponseDescriptor = $convert.base64Deco
'ChRMaXN0U2Vzc2lvbnNSZXNwb25zZRI7CghzZXNzaW9ucxgBIAMoCzIfLnNlcnZpY2VzLmNvbm'
'5lY3QudjEuSURWU2Vzc2lvblIIc2Vzc2lvbnMSFAoFdG90YWwYAiABKAVSBXRvdGFsEhIKBG1v'
'cmUYAyABKAhSBG1vcmU=');

@$core.Deprecated('Use hasValidCredentialRequestDescriptor instead')
const HasValidCredentialRequest$json = {
'1': 'HasValidCredentialRequest',
'2': [
{
'1': 'identity',
'3': 1,
'4': 1,
'5': 11,
'6': '.services.universalwallet.v1.CreateWalletRequest.ExternalIdentity',
'10': 'identity'
},
{
'1': 'credential_request_data',
'3': 2,
'4': 1,
'5': 11,
'6': '.services.connect.v1.CredentialRequestData',
'10': 'credentialRequestData'
},
],
};

/// Descriptor for `HasValidCredentialRequest`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List hasValidCredentialRequestDescriptor = $convert.base64Decode(
'ChlIYXNWYWxpZENyZWRlbnRpYWxSZXF1ZXN0El0KCGlkZW50aXR5GAEgASgLMkEuc2VydmljZX'
'MudW5pdmVyc2Fsd2FsbGV0LnYxLkNyZWF0ZVdhbGxldFJlcXVlc3QuRXh0ZXJuYWxJZGVudGl0'
'eVIIaWRlbnRpdHkSYgoXY3JlZGVudGlhbF9yZXF1ZXN0X2RhdGEYAiABKAsyKi5zZXJ2aWNlcy'
'5jb25uZWN0LnYxLkNyZWRlbnRpYWxSZXF1ZXN0RGF0YVIVY3JlZGVudGlhbFJlcXVlc3REYXRh');

@$core.Deprecated('Use hasValidCredentialResponseDescriptor instead')
const HasValidCredentialResponse$json = {
'1': 'HasValidCredentialResponse',
'2': [
{
'1': 'has_valid_credential',
'3': 1,
'4': 1,
'5': 8,
'10': 'hasValidCredential'
},
],
};

/// Descriptor for `HasValidCredentialResponse`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List hasValidCredentialResponseDescriptor =
$convert.base64Decode(
'ChpIYXNWYWxpZENyZWRlbnRpYWxSZXNwb25zZRIwChRoYXNfdmFsaWRfY3JlZGVudGlhbBgBIA'
'EoCFISaGFzVmFsaWRDcmVkZW50aWFs');

@$core.Deprecated('Use credentialRequestDataDescriptor instead')
const CredentialRequestData$json = {
'1': 'CredentialRequestData',
'2': [
{
'1': 'type',
'3': 1,
'4': 1,
'5': 14,
'6': '.services.connect.v1.VerificationType',
'10': 'type'
},
],
};

/// Descriptor for `CredentialRequestData`. Decode as a `google.protobuf.DescriptorProto`.
final $typed_data.Uint8List credentialRequestDataDescriptor = $convert.base64Decode(
'ChVDcmVkZW50aWFsUmVxdWVzdERhdGESOQoEdHlwZRgBIAEoDjIlLnNlcnZpY2VzLmNvbm5lY3'
'QudjEuVmVyaWZpY2F0aW9uVHlwZVIEdHlwZQ==');
Loading

0 comments on commit 892feee

Please sign in to comment.