Skip to content

Commit

Permalink
Rework Initialize Methods (#102)
Browse files Browse the repository at this point in the history
* make config optional

* update changelog and version

* fix lint
  • Loading branch information
jumaallan authored Aug 30, 2024
1 parent f99fc4c commit e317291
Show file tree
Hide file tree
Showing 11 changed files with 112 additions and 40 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Release Notes

## 10.1.8
* Fix API Config to provide different options to configure SmileID
* Bump ios to 10.2.8 (https://github.com/smileidentity/ios/releases/tag/v10.2.8) In memory zip file handling

## 10.1.7
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class SmileIDPlugin : FlutterPlugin, SmileIDApi, ActivityAware {
)
}

override fun initialize(
override fun initializeWithConfig(
config: FlutterConfig,
useSandbox: Boolean,
enableCrashReporting: Boolean,
Expand All @@ -112,6 +112,13 @@ class SmileIDPlugin : FlutterPlugin, SmileIDApi, ActivityAware {
)
}

override fun initialize(useSandbox: Boolean) {
SmileID.initialize(
context = appContext,
useSandbox = useSandbox,
)
}

override fun setCallbackUrl(callbackUrl: String) {
SmileID.setCallbackUrl(callbackUrl = URL(callbackUrl))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1963,7 +1963,8 @@ private object SmileIDApiCodec : StandardMessageCodec() {
/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
interface SmileIDApi {
fun initializeWithApiKey(apiKey: String, config: FlutterConfig, useSandbox: Boolean, enableCrashReporting: Boolean)
fun initialize(config: FlutterConfig, useSandbox: Boolean, enableCrashReporting: Boolean)
fun initializeWithConfig(config: FlutterConfig, useSandbox: Boolean, enableCrashReporting: Boolean)
fun initialize(useSandbox: Boolean)
fun setCallbackUrl(callbackUrl: String)
fun setAllowOfflineMode(allowOfflineMode: Boolean)
fun getSubmittedJobs(): List<String>
Expand Down Expand Up @@ -2021,7 +2022,7 @@ interface SmileIDApi {
}
}
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.smileid.SmileIDApi.initialize", codec)
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.smileid.SmileIDApi.initializeWithConfig", codec)
if (api != null) {
channel.setMessageHandler { message, reply ->
val args = message as List<Any?>
Expand All @@ -2030,7 +2031,26 @@ interface SmileIDApi {
val enableCrashReportingArg = args[2] as Boolean
var wrapped: List<Any?>
try {
api.initialize(configArg, useSandboxArg, enableCrashReportingArg)
api.initializeWithConfig(configArg, useSandboxArg, enableCrashReportingArg)
wrapped = listOf<Any?>(null)
} catch (exception: Throwable) {
wrapped = wrapError(exception)
}
reply.reply(wrapped)
}
} else {
channel.setMessageHandler(null)
}
}
run {
val channel = BasicMessageChannel<Any?>(binaryMessenger, "dev.flutter.pigeon.smileid.SmileIDApi.initialize", codec)
if (api != null) {
channel.setMessageHandler { message, reply ->
val args = message as List<Any?>
val useSandboxArg = args[0] as Boolean
var wrapped: List<Any?>
try {
api.initialize(useSandboxArg)
wrapped = listOf<Any?>(null)
} catch (exception: Throwable) {
wrapped = wrapError(exception)
Expand Down
14 changes: 0 additions & 14 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,7 @@ class _MyAppState extends State<MyApp> {
if (!mounted) return;
// replace with your own credentials
SmileID.initialize(
config: FlutterConfig(
partnerId: "partnerId",
authToken: "authToken",
prodBaseUrl: "prodBaseUrl",
sandboxBaseUrl: "sandboxBaseUrl"
),
useSandbox: false,
enableCrashReporting: true
);
}

Expand Down Expand Up @@ -102,14 +95,7 @@ class MainContent extends StatelessWidget {
onPressed: () {
// replace with your own credentials
SmileID.initialize(
config: FlutterConfig(
partnerId: "partnerId",
authToken: "authToken",
prodBaseUrl: "prodBaseUrl",
sandboxBaseUrl: "sandboxBaseUrl"
),
useSandbox: false,
enableCrashReporting: true
);
var userId = "<your user's user ID>";
SmileID.api
Expand Down
24 changes: 20 additions & 4 deletions ios/Classes/SmileIDMessages.g.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1948,7 +1948,8 @@ class SmileIDApiCodec: FlutterStandardMessageCodec {
/// Generated protocol from Pigeon that represents a handler of messages from Flutter.
protocol SmileIDApi {
func initializeWithApiKey(apiKey: String, config: FlutterConfig, useSandbox: Bool, enableCrashReporting: Bool) throws
func initialize(config: FlutterConfig, useSandbox: Bool, enableCrashReporting: Bool) throws
func initializeWithConfig(config: FlutterConfig, useSandbox: Bool, enableCrashReporting: Bool) throws
func initialize(useSandbox: Bool) throws
func setCallbackUrl(callbackUrl: String) throws
func setAllowOfflineMode(allowOfflineMode: Bool) throws
func getSubmittedJobs() throws -> [String]
Expand Down Expand Up @@ -2000,15 +2001,30 @@ class SmileIDApiSetup {
} else {
initializeWithApiKeyChannel.setMessageHandler(nil)
}
let initializeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.smileid.SmileIDApi.initialize", binaryMessenger: binaryMessenger, codec: codec)
let initializeWithConfigChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.smileid.SmileIDApi.initializeWithConfig", binaryMessenger: binaryMessenger, codec: codec)
if let api = api {
initializeChannel.setMessageHandler { message, reply in
initializeWithConfigChannel.setMessageHandler { message, reply in
let args = message as! [Any?]
let configArg = args[0] as! FlutterConfig
let useSandboxArg = args[1] as! Bool
let enableCrashReportingArg = args[2] as! Bool
do {
try api.initialize(config: configArg, useSandbox: useSandboxArg, enableCrashReporting: enableCrashReportingArg)
try api.initializeWithConfig(config: configArg, useSandbox: useSandboxArg, enableCrashReporting: enableCrashReportingArg)
reply(wrapResult(nil))
} catch {
reply(wrapError(error))
}
}
} else {
initializeWithConfigChannel.setMessageHandler(nil)
}
let initializeChannel = FlutterBasicMessageChannel(name: "dev.flutter.pigeon.smileid.SmileIDApi.initialize", binaryMessenger: binaryMessenger, codec: codec)
if let api = api {
initializeChannel.setMessageHandler { message, reply in
let args = message as! [Any?]
let useSandboxArg = args[0] as! Bool
do {
try api.initialize(useSandbox: useSandboxArg)
reply(wrapResult(nil))
} catch {
reply(wrapError(error))
Expand Down
10 changes: 9 additions & 1 deletion ios/Classes/SmileIDPlugin.swift
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public class SmileIDPlugin: NSObject, FlutterPlugin, SmileIDApi {
)
}

func initialize(
func initializeWithConfig(
config: FlutterConfig,
useSandbox: Bool,
enableCrashReporting: Bool
Expand All @@ -72,6 +72,14 @@ public class SmileIDPlugin: NSObject, FlutterPlugin, SmileIDApi {
useSandbox: useSandbox
)
}

func initialize(
useSandbox: Bool
) {
SmileID.initialize(
useSandbox: useSandbox
)
}

func setCallbackUrl(callbackUrl: String) {
SmileID.setCallbackUrl(url: URL(string: callbackUrl))
Expand Down
10 changes: 8 additions & 2 deletions lib/smile_id.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,18 @@ class SmileID {
platformInterface.initializeWithApiKey(apiKey, config, useSandbox, enableCrashReporting);
}

static void initialize({
static void initializeWithConfig({
required FlutterConfig config,
required bool useSandbox,
required bool enableCrashReporting
}) {
platformInterface.initialize(config, useSandbox, enableCrashReporting);
platformInterface.initializeWithConfig(config, useSandbox, enableCrashReporting);
}

static void initialize({
required bool useSandbox,
}) {
platformInterface.initialize(useSandbox);
}

static void setCallbackUrl({required Uri callbackUrl}) {
Expand Down
26 changes: 24 additions & 2 deletions lib/smileid_messages.g.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2246,8 +2246,8 @@ class SmileIDApi {
}
}

Future<void> initialize(FlutterConfig config, bool useSandbox, bool enableCrashReporting) async {
const String __pigeon_channelName = 'dev.flutter.pigeon.smileid.SmileIDApi.initialize';
Future<void> initializeWithConfig(FlutterConfig config, bool useSandbox, bool enableCrashReporting) async {
const String __pigeon_channelName = 'dev.flutter.pigeon.smileid.SmileIDApi.initializeWithConfig';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
Expand All @@ -2268,6 +2268,28 @@ class SmileIDApi {
}
}

Future<void> initialize(bool useSandbox) async {
const String __pigeon_channelName = 'dev.flutter.pigeon.smileid.SmileIDApi.initialize';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
__pigeon_channelName,
pigeonChannelCodec,
binaryMessenger: __pigeon_binaryMessenger,
);
final List<Object?>? __pigeon_replyList =
await __pigeon_channel.send(<Object?>[useSandbox]) as List<Object?>?;
if (__pigeon_replyList == null) {
throw _createConnectionError(__pigeon_channelName);
} else if (__pigeon_replyList.length > 1) {
throw PlatformException(
code: __pigeon_replyList[0]! as String,
message: __pigeon_replyList[1] as String?,
details: __pigeon_replyList[2],
);
} else {
return;
}
}

Future<void> setCallbackUrl(String callbackUrl) async {
const String __pigeon_channelName = 'dev.flutter.pigeon.smileid.SmileIDApi.setCallbackUrl';
final BasicMessageChannel<Object?> __pigeon_channel = BasicMessageChannel<Object?>(
Expand Down
6 changes: 5 additions & 1 deletion pigeon/messages.dart
Original file line number Diff line number Diff line change
Expand Up @@ -810,12 +810,16 @@ abstract class SmileIDApi {
bool enableCrashReporting
);

void initialize(
void initializeWithConfig(
FlutterConfig config,
bool useSandbox,
bool enableCrashReporting
);

void initialize(
bool useSandbox
);

void setCallbackUrl(String callbackUrl);

void setAllowOfflineMode(bool allowOfflineMode);
Expand Down
12 changes: 2 additions & 10 deletions test/smile_id_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,10 @@ void main() {
});

test("initialize call is proxied", () {
final FlutterConfig config = FlutterConfig(
partnerId: "partnerId",
authToken: "authToken",
prodBaseUrl: "prodBaseUrl",
sandboxBaseUrl: "sandboxBaseUrl"
);
SmileID.initialize(
config: config,
useSandbox: true,
enableCrashReporting: true
useSandbox: true
);
verify(SmileID.platformInterface.initialize(config, true, true));
verify(SmileID.platformInterface.initialize(true));
});

test("authenticate call is proxied", () {
Expand Down
14 changes: 12 additions & 2 deletions test/smile_id_test.mocks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -202,14 +202,14 @@ class MockSmileIDApi extends _i1.Mock implements _i2.SmileIDApi {
) as _i3.Future<void>);

@override
_i3.Future<void> initialize(
_i3.Future<void> initializeWithConfig(
_i2.FlutterConfig? config,
bool? useSandbox,
bool? enableCrashReporting,
) =>
(super.noSuchMethod(
Invocation.method(
#initialize,
#initializeWithConfig,
[
config,
useSandbox,
Expand All @@ -220,6 +220,16 @@ class MockSmileIDApi extends _i1.Mock implements _i2.SmileIDApi {
returnValueForMissingStub: _i3.Future<void>.value(),
) as _i3.Future<void>);

@override
_i3.Future<void> initialize(bool? useSandbox) => (super.noSuchMethod(
Invocation.method(
#initialize,
[useSandbox],
),
returnValue: _i3.Future<void>.value(),
returnValueForMissingStub: _i3.Future<void>.value(),
) as _i3.Future<void>);

@override
_i3.Future<void> setCallbackUrl(String? callbackUrl) => (super.noSuchMethod(
Invocation.method(
Expand Down

0 comments on commit e317291

Please sign in to comment.