Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: Add HasValidCredential method to the ConnectService #1585

Merged
merged 2 commits into from
Nov 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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