diff --git a/.gitignore b/.gitignore index 99b5b03..22ec710 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,6 @@ coverage/ pubspec.lock .flutter-plugins -.flutter-plugins-dependencies \ No newline at end of file +.flutter-plugins-dependencies + +example \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml index 857e8c3..ce884ac 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -3,3 +3,4 @@ # analyzer: # enable-experiment: # - non-nullable +include: package:flutter_lints/flutter.yaml \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index afe76b8..8c7a5ff 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ group 'jp.pokepay.pokepay_sdk' -version '1.0.0' +version '1.0.6' buildscript { repositories { @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:4.1.3' } } @@ -22,7 +22,7 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { - compileSdkVersion 28 + compileSdkVersion 31 defaultConfig { minSdkVersion 21 @@ -33,8 +33,8 @@ android { } dependencies { - implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.7' - implementation 'com.fasterxml.jackson.core:jackson-core:2.9.7' - implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.7' - implementation 'jp.pocket-change.pokepay.android-sdk:pokepaylib:1.5.1' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.11.1' + implementation 'com.fasterxml.jackson.core:jackson-core:2.11.1' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.1' + implementation 'jp.pocket-change.pokepay.android-sdk:pokepaylib:1.6.0' } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 01a286e..0ecb941 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Fri Jun 10 16:11:04 JST 2022 distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +zipStoreBase=GRADLE_USER_HOME diff --git a/android/src/main/java/jp/pokepay/pokepay_sdk/PokepaySdkPlugin.java b/android/src/main/java/jp/pokepay/pokepay_sdk/PokepaySdkPlugin.java index 49712f8..8e5f0aa 100644 --- a/android/src/main/java/jp/pokepay/pokepay_sdk/PokepaySdkPlugin.java +++ b/android/src/main/java/jp/pokepay/pokepay_sdk/PokepaySdkPlugin.java @@ -1,7 +1,7 @@ package jp.pokepay.pokepay_sdk; +import android.content.Context; import android.os.AsyncTask; -import android.util.Log; import androidx.annotation.NonNull; @@ -21,7 +21,6 @@ import io.flutter.plugin.common.MethodChannel; import io.flutter.plugin.common.MethodChannel.MethodCallHandler; import io.flutter.plugin.common.MethodChannel.Result; -import io.flutter.plugin.common.PluginRegistry.Registrar; import jp.pokepay.pokepaylib.BankAPI.Account.CreateAccount; import jp.pokepay.pokepaylib.BankAPI.Account.CreateAccountCpmToken; import jp.pokepay.pokepaylib.BankAPI.Account.GetAccount; @@ -45,7 +44,6 @@ import jp.pokepay.pokepaylib.BankAPI.Check.GetCheck; import jp.pokepay.pokepaylib.BankAPI.Check.UpdateCheck; import jp.pokepay.pokepaylib.BankAPI.CpmToken.GetCpmToken; -import jp.pokepay.pokepaylib.BankAPI.Account.PatchAccountCouponDetail; import jp.pokepay.pokepaylib.BankAPI.PrivateMoney.GetPrivateMoneyCoupons; import jp.pokepay.pokepaylib.BankAPI.PrivateMoney.SearchPrivateMoneys; import jp.pokepay.pokepaylib.BankAPI.Terminal.AddTerminalPublicKey; @@ -76,8 +74,8 @@ import jp.pokepay.pokepaylib.OAuthAPI.OAuthRequestError; import jp.pokepay.pokepaylib.OAuthAPI.Token.ExchangeAuthCode; import jp.pokepay.pokepaylib.OAuthAPI.Token.RefreshAccessToken; -import jp.pokepay.pokepaylib.Parameters.Product; import jp.pokepay.pokepaylib.Parameters.Metadata; +import jp.pokepay.pokepaylib.Parameters.Product; import jp.pokepay.pokepaylib.Pokepay; import jp.pokepay.pokepaylib.Response; import jp.pokepay.pokepaylib.Responses.AccessToken; @@ -103,35 +101,24 @@ import jp.pokepay.pokepaylib.Responses.Terminal; import jp.pokepay.pokepaylib.Responses.User; import jp.pokepay.pokepaylib.Responses.UserTransaction; -import jp.pokepay.pokepaylib.TokenInfo; -/** PokepaySdkPlugin */ + +/** PokepayFlutterSdkPlugin */ public class PokepaySdkPlugin implements FlutterPlugin, MethodCallHandler { /// The MethodChannel that will the communication between Flutter and native Android /// /// This local reference serves to register the plugin with the Flutter Engine and unregister it /// when the Flutter Engine is detached from the Activity private MethodChannel channel; + private static Context context; @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { - channel = new MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "jp.pokepay/pokepay_sdk"); + channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "jp.pokepay/pokepay_sdk"); + context = flutterPluginBinding.getApplicationContext(); channel.setMethodCallHandler(this); } - // This static function is optional and equivalent to onAttachedToEngine. It supports the old - // pre-Flutter-1.12 Android projects. You are encouraged to continue supporting - // plugin registration via this function while apps migrate to use the new Android APIs - // post-flutter-1.12 via https://flutter.dev/go/android-project-migration. - // - // It is encouraged to share logic between onAttachedToEngine and registerWith to keep - // them functionally equivalent. Only one of onAttachedToEngine or registerWith will be called - // depending on the user's project. onAttachedToEngine or registerWith must both be defined - // in the same class. - public static void registerWith(Registrar registrar) { - final MethodChannel channel = new MethodChannel(registrar.messenger(), "jp.pokepay/pokepay_sdk"); - channel.setMethodCallHandler(new PokepaySdkPlugin()); - } static private class MethodCallAsyncTask extends AsyncTask { @@ -157,7 +144,6 @@ private Env flutterEnvToSDKEnv(int env) { case 0: return Env.PRODUCTION; case 1: return Env.SANDBOX; case 2: return Env.QA; - case 3: return Env.DEVELOPMENT; default: return Env.DEVELOPMENT; } } @@ -197,7 +183,8 @@ private TaskResult invokeMethod() { String accessToken = call.argument("accessToken"); String name = call.argument("name"); String privateMoneyId = call.argument("privateMoneyId"); - CreateAccount req = new CreateAccount(name, privateMoneyId); + String externalId = call.argument("externalId"); + CreateAccount req = new CreateAccount(name, privateMoneyId,externalId); Pokepay.setEnv(env); Account res = req.send(accessToken); return new TaskResult(null, res.toString()); @@ -512,6 +499,17 @@ private TaskResult invokeMethod() { Terminal res = req.send(accessToken); return new TaskResult(null, res.toString()); } +// case "getTokenInfo": { +// Env env = flutterEnvToSDKEnv((int) call.argument("env")); +// String accessToken = call.argument("accessToken"); +// String token = call.argument("token"); +// Pokepay.setEnv(env); +// Pokepay.Client client = new Pokepay.Client(accessToken,null); +// TokenInfo tokenInfo = client.getTokenInfo(token); +// MyTokenInfo myTokenInfo = new MyTokenInfo(tokenInfo); +// Log.v("hello",myTokenInfo.toString()); +// return new TaskResult(null,myTokenInfo.toString()); +// } case "getUserAccounts": { Env env = flutterEnvToSDKEnv((int)call.argument("env")); String accessToken = call.argument("accessToken"); @@ -563,7 +561,8 @@ private TaskResult invokeMethod() { String accountId = call.argument("accountId"); String couponId = call.argument("couponId"); boolean isReceived = call.argument("is_received"); - PatchAccountCouponDetail req = new PatchAccountCouponDetail(accountId,couponId,isReceived); + String code = call.argument("code"); + PatchAccountCouponDetail req = new PatchAccountCouponDetail(accountId,couponId,isReceived,code); CouponDetail res = req.send(accessToken); return new TaskResult(null, res.toString()); } @@ -599,13 +598,34 @@ private TaskResult invokeMethod() { Env env = flutterEnvToSDKEnv((int) call.argument("env")); String accessToken = call.argument("accessToken"); String scanToken = call.argument("scanToken"); - double amount = call.argument("amount"); - String accountId = call.argument("accountId"); - Product[] products = call.argument("products"); - String couponId = call.argument("couponId"); - Pokepay.setEnv(env); - Pokepay.Client client = new Pokepay.Client(accessToken, null); - UserTransaction userTransaction = client.scanToken(scanToken,amount,accountId,products,couponId); + + double amount = 0.0; + if(call.argument("amount")!=null){ + amount = call.argument("amount"); + } + String accountId=null; + if(call.argument("accountId")!=null){ + accountId = call.argument("accountId"); + } + Product[] products = new Product[0]; + if(call.argument("products")!=null) { + products = call.argument("products"); + } + String couponId=null; + if(call.argument("couponId")!=null){ + couponId = call.argument("couponId"); + } + Pokepay.setEnv(env); + Pokepay.Client client = new Pokepay.Client(accessToken, context); + UserTransaction userTransaction; + if(amount==0.0){ + userTransaction = client.scanToken(scanToken); + }else{ + userTransaction = client.scanToken(scanToken,amount,accountId,products,couponId); + } + + + return new TaskResult(null, userTransaction.toString()); } case "searchPrivateMoneys": { @@ -758,7 +778,7 @@ protected void onPostExecute(TaskResult res) { try { jsonObj.put("message", message); } catch (JSONException e) { - Log.e("pokepay_sdk", e.getMessage()); +// Log.e("pokepay_sdk", e.getMessage()); } String errorMessage = jsonObj.toString(); result.error("ProcessingError", errorMessage, null); @@ -769,6 +789,9 @@ protected void onPostExecute(TaskResult res) { } } + + + @Override public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { new MethodCallAsyncTask(call, result).execute(""); diff --git a/ios/Classes/SwiftPokepaySdkPlugin.swift b/ios/Classes/SwiftPokepaySdkPlugin.swift index 908725a..71277f0 100644 --- a/ios/Classes/SwiftPokepaySdkPlugin.swift +++ b/ios/Classes/SwiftPokepaySdkPlugin.swift @@ -4,6 +4,7 @@ import APIKit import Result import Pokepay + private class APIJSONEncoder : JSONEncoder { override init() { super.init() @@ -83,6 +84,7 @@ private class MethodCallTask { ) } private func after(_ ret: Result) -> Void { + switch ret { case .success(let ret): let bytes = try! APIJSONEncoder().encode(ret) @@ -135,16 +137,18 @@ private class MethodCallTask { let client = Pokepay.Client(accessToken: accessToken, env: env) let name = args["name"] as? String let privateMoneyId = args["privateMoneyId"] as? String - client.send(BankAPI.Account.Create(name: name, privateMoneyId: privateMoneyId), handler: self.after) + let externalId = args["externalId"] as? String + client.send(BankAPI.Account.Create(name: name, privateMoneyId: privateMoneyId,externalId: externalId), handler: self.after) case "createAccountCpmToken": - let env = flutterEnvToSDKEnv(ienv: args["env"] as! Int32) - let accessToken = args["accessToken"] as! String - let client = Pokepay.Client(accessToken: accessToken, env: env) - let accountId = args["accountId"] as! String - let scopes = args["scopes"] as! Int - let expiresIn = args["expiresIn"] as? Int - let metadataMap = args["metadata"] as? [String:String] - client.send(BankAPI.Account.CreateAccountCpmToken(accountId: accountId, scopes: BankAPI.Account.CreateAccountCpmToken.Scope(rawValue: scopes)!, expiresIn: expiresIn, metadata: metadataMap), handler: self.after) + let env = flutterEnvToSDKEnv(ienv: args["env"] as! Int32) + let accessToken = args["accessToken"] as! String + let client = Pokepay.Client(accessToken: accessToken, env: env) + let accountId = args["accountId"] as! String + let scopes = args["scopes"] as! Int + let expiresIn = args["expiresIn"] as? Int + let metadataMap = args["metadata"] as? [String:String] + + client.send(BankAPI.Account.CreateAccountCpmToken(accountId: accountId, scopes: BankAPI.Account.CreateAccountCpmToken.Scope(rawValue: scopes)!, expiresIn: expiresIn,metadata: metadataMap), handler: self.after) case "createBill": let env = flutterEnvToSDKEnv(ienv: args["env"] as! Int32) let accessToken = args["accessToken"] as! String @@ -183,13 +187,21 @@ private class MethodCallTask { case "createToken": let env = flutterEnvToSDKEnv(ienv: args["env"] as! Int32) let accessToken = args["accessToken"] as! String - let isMerchant = args["isMerchan"] as! Bool + let isMerchant = args["isMerchant"] as! Bool let amount = args["amount"] as! Double let description = args["description"] as! String let expiresIn = args["expiresIn"] as? Int32 let accountId = args["accountId"] as? String - let productsString = (args["products"] as! String).data(using: .utf8)! - let products = try! BankAPIJSONDecoder().decode([Product]?.self, from: productsString) + let productsString = (args["products"] as? String) + var products:[Product]?; + if(productsString==nil){ + products = nil; + }else{ + let productData=productsString?.data(using: .utf8) + products = try! BankAPIJSONDecoder().decode([Product]?.self, from: productData!) + } + + let client = Pokepay.Client(accessToken: accessToken,isMerchant: isMerchant,env: env) client.createToken(amount,description: description, expiresIn: expiresIn, accountId: accountId, products: products, handler: self.after) case "createUserTransactionWithBill": @@ -264,7 +276,7 @@ private class MethodCallTask { let code = args["code"] as! String let clientId = args["clientId"] as! String let clientSecret = args["clientSecret"] as! String - let grantType = args["grantType"] as! String + //let grantType = args["grantType"] as! String let client = Pokepay.OAuthClient(clientId: clientId, clientSecret: clientSecret, env: env) client.send(OAuthAPI.Token.ExchangeAuthCode(code: code, clientId: clientId, clientSecret: clientSecret), handler: self.after) case "getAccount": @@ -429,8 +441,17 @@ private class MethodCallTask { let token = args["scanToken"] as! String let amount = args["amount"] as? Double let accountId = args["accountId"] as? String - let productsString = (args["products"] as! String).data(using: .utf8)! - let products = try! BankAPIJSONDecoder().decode([Product]?.self, from: productsString) +// let productsString = (args["products"] as! String).data(using: .utf8)! + let productsString = (args["products"] as? String) + var products:[Product]?; + if(productsString==nil){ + products = nil; + }else{ + let productData=productsString?.data(using: .utf8) + products = try! BankAPIJSONDecoder().decode([Product]?.self, from: productData!) + } + +// let products = try! BankAPIJSONDecoder().decode([Product]?.self, from: productsString) let couponId = args["couponId"] as? String let client = Pokepay.Client(accessToken: accessToken,env: env) client.scanToken(token,amount:amount,accountId:accountId,products:products,couponId:couponId,handler: self.after) diff --git a/ios/pokepay_flutter_sdk.podspec b/ios/pokepay_flutter_sdk.podspec index d6a72e6..20c3fd6 100644 --- a/ios/pokepay_flutter_sdk.podspec +++ b/ios/pokepay_flutter_sdk.podspec @@ -4,7 +4,7 @@ # Pod::Spec.new do |s| s.name = 'pokepay_flutter_sdk' - s.version = '1.0.4' + s.version = '1.0.6' s.summary = 'Pokepay flutter SDK' s.description = <<-DESC Pokepay flutter SDK @@ -15,7 +15,7 @@ Pokepay flutter SDK s.source = { :path => '.' } s.source_files = 'Classes/**/*' s.dependency 'Flutter' - s.dependency 'Pokepay', '1.5.2' + s.dependency 'Pokepay', '1.6.0' s.platform = :ios, '12.0' # Flutter.framework does not contain a i386 slice. Only x86_64 simulators are supported. diff --git a/lib/bank_api/account.dart b/lib/bank_api/account.dart old mode 100644 new mode 100755 index c1eeec4..144d994 --- a/lib/bank_api/account.dart +++ b/lib/bank_api/account.dart @@ -1,8 +1,9 @@ -import 'package:meta/meta.dart'; -import 'package:pokepay_flutter_sdk/responses/coupon_detail.dart'; -import 'package:pokepay_flutter_sdk/responses/paginated_coupons.dart'; +import 'dart:io'; import '../pokepay_sdk.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; +import '/responses/coupon_detail.dart'; +import '/responses/paginated_coupons.dart'; import '../responses.dart'; enum CpmTokenScope { @@ -13,11 +14,29 @@ enum CpmTokenScope { } extension AccountAPI on PokepayAPI { + + + Future getCpmToken({ + required String cpmToken, + }) async { + + return await PokepayFlutterSdkPlatform.instance.invokeMethod( + (j) => AccountCpmToken.fromJson(j), + 'getCpmToken', + { + 'env': this.env.index, + 'accessToken': this.accessToken, + 'cpmToken': cpmToken, + }, + ); + } + Future createAccount({ - String name, - String privateMoneyId, + required String name, + required String privateMoneyId, + String? externalId, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Account.fromJson(j), 'createAccount', { @@ -25,34 +44,35 @@ extension AccountAPI on PokepayAPI { 'accessToken': this.accessToken, 'name': name, 'privateMoneyId': privateMoneyId, + 'externalId': externalId, }, ); } Future createAccountCpmToken({ - @required String accountId, - @required CpmTokenScope scopes, - int expiresIn, - Map metadata, + required String? accountId, + required CpmTokenScope? scopes, + int? expiresIn, + Map? metadata, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => AccountCpmToken.fromJson(j), 'createAccountCpmToken', { 'env': this.env.index, 'accessToken': this.accessToken, 'accountId': accountId, - 'scopes': scopes.index, + 'scopes': scopes!.index, 'expiresIn': expiresIn, - 'metadata' : metadata, + 'metadata' : metadata??(Platform.isIOS?null:{}), }, ); } Future getAccount({ - @required String id, + required String? id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Account.fromJson(j), 'getAccount', { @@ -64,12 +84,12 @@ extension AccountAPI on PokepayAPI { } Future getAccountBalances({ - @required String id, - String before, - String after, - int perPage, + required String? id, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedAccountBalances.fromJson(j), 'getAccountBalances', { @@ -83,13 +103,13 @@ extension AccountAPI on PokepayAPI { ); } Future getAccountCoupons({ - @required String accountId, - bool isAvailable, - String before, - String after, - int perPage, + required String accountId, + bool? isAvailable, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedCoupons.fromJson(j), 'getAccountCoupons', { @@ -105,10 +125,10 @@ extension AccountAPI on PokepayAPI { } Future getAccountCouponDetail({ - @required String accountId, - @required String couponId, + required String? accountId, + required String? couponId, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => CouponDetail.fromJson(j), 'getAccountCouponDetail', { @@ -120,12 +140,12 @@ extension AccountAPI on PokepayAPI { ); } Future getAccounTransactions({ - @required String id, - String before, - String after, - int perPage, + required String id, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedTransactions.fromJson(j), 'getAccountTransactions', { @@ -140,11 +160,11 @@ extension AccountAPI on PokepayAPI { } Future patchAccountCouponDetail({ - @required String accountId, - @required String couponId, - @required bool isReceieved, + required String accountId, + required String couponId, + required bool isReceieved, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => CouponDetail.fromJson(j), 'patchAccountCouponDetail', { diff --git a/lib/bank_api/bank_api.dart b/lib/bank_api/bank_api.dart new file mode 100644 index 0000000..f2c099e --- /dev/null +++ b/lib/bank_api/bank_api.dart @@ -0,0 +1,9 @@ +export 'user.dart'; +export 'account.dart'; +export 'bill.dart'; +export 'cashtray.dart'; +export 'check.dart'; +export 'private_money.dart'; +export 'terminal.dart'; +export 'transaction.dart'; +export 'user.dart'; diff --git a/lib/bank_api/bill.dart b/lib/bank_api/bill.dart old mode 100644 new mode 100755 index 04edb71..8288019 --- a/lib/bank_api/bill.dart +++ b/lib/bank_api/bill.dart @@ -1,20 +1,20 @@ import 'dart:convert'; -import 'package:meta/meta.dart'; - import '../parameters/product.dart'; import '../pokepay_sdk.dart'; + +import '../pokepay_flutter_sdk_platform_interface.dart'; import '../responses.dart'; extension BillAPI on PokepayAPI { Future createBill({ - double amount, - String accountId, - String description, + double? amount, + String? accountId, + String? description, bool isOnetime = false, - List products, + List? products, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Bill.fromJson(j), 'createBill', { @@ -30,9 +30,9 @@ extension BillAPI on PokepayAPI { } Future deleteBill({ - @required String id, + required String? id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => NoContent.fromJson(j), 'deleteBill', { @@ -44,9 +44,9 @@ extension BillAPI on PokepayAPI { } Future getBill({ - @required String id, + required String? id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Bill.fromJson(j), 'getBill', { @@ -58,11 +58,11 @@ extension BillAPI on PokepayAPI { } Future updateBill({ - @required String id, - double amount, - String description, + required String? id, + double? amount, + String? description, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Bill.fromJson(j), 'updateBill', { diff --git a/lib/bank_api/cashtray.dart b/lib/bank_api/cashtray.dart old mode 100644 new mode 100755 index e533676..34ce2be --- a/lib/bank_api/cashtray.dart +++ b/lib/bank_api/cashtray.dart @@ -1,19 +1,18 @@ import 'dart:convert'; -import 'package:meta/meta.dart'; - import '../parameters/product.dart'; import '../pokepay_sdk.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; import '../responses.dart'; extension CashtrayAPI on PokepayAPI { Future createCashtray({ - @required double amount, - String description, - int expiresIn, - List products, + required double amount, + String? description, + int? expiresIn, + List? products, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Cashtray.fromJson(j), 'createCashtray', { @@ -28,9 +27,9 @@ extension CashtrayAPI on PokepayAPI { } Future deleteCashtray({ - @required String id, + required String? id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => NoContent.fromJson(j), 'deleteCashtray', { @@ -42,9 +41,9 @@ extension CashtrayAPI on PokepayAPI { } Future getCashtray({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Cashtray.fromJson(j), 'getCashtray', { @@ -57,9 +56,9 @@ extension CashtrayAPI on PokepayAPI { @deprecated Future getCashtrayAttempts({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => CashtrayAttempts.fromJson(j), 'getCashtrayAttempts', { @@ -71,12 +70,12 @@ extension CashtrayAPI on PokepayAPI { } Future updateCashtray({ - @required String id, - double amount, - String description, - int expiresIn, + required String id, + double? amount, + String? description, + int? expiresIn, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Cashtray.fromJson(j), 'updateCashtray', { diff --git a/lib/bank_api/check.dart b/lib/bank_api/check.dart old mode 100644 new mode 100755 index 4e89a73..931a365 --- a/lib/bank_api/check.dart +++ b/lib/bank_api/check.dart @@ -2,24 +2,25 @@ import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; import '../pokepay_sdk.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; import '../responses.dart'; var datetimeConv = CustomDateTimeConverter(); extension CheckAPI on PokepayAPI { Future createCheck({ - double amount, - double moneyAmount, - double pointAmount, - String accountId, - String description, + double? amount, + double? moneyAmount, + double? pointAmount, + String? accountId, + String? description, bool isOnetime = true, // check should be onetime default - int usageLimit, - DateTime expiresAt, - DateTime pointExpiresAt, - int pointExpiresInDays, + int? usageLimit, + DateTime? expiresAt, + DateTime? pointExpiresAt, + int? pointExpiresInDays, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Check.fromJson(j), 'createCheck', { @@ -32,17 +33,17 @@ extension CheckAPI on PokepayAPI { 'description': description, 'isOnetime': isOnetime, 'usageLimit': usageLimit, - 'expiresAt': datetimeConv.toJson(expiresAt), - 'pointExpiresAt': datetimeConv.toJson(pointExpiresAt), + 'expiresAt': datetimeConv.toJson(expiresAt!), + 'pointExpiresAt': datetimeConv.toJson(pointExpiresAt!), 'pointExpiresInDays': pointExpiresInDays, }, ); } Future deleteCheck({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => NoContent.fromJson(j), 'deleteCheck', { @@ -54,9 +55,9 @@ extension CheckAPI on PokepayAPI { } Future getCheck({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Check.fromJson(j), 'getCheck', { @@ -68,14 +69,14 @@ extension CheckAPI on PokepayAPI { } Future updateCheck({ - @required String id, - double amount, - String description, - DateTime expiresAt, - DateTime pointExpiresAt, - int pointExpiresInDays, + required String id, + double? amount, + String? description, + DateTime? expiresAt, + DateTime? pointExpiresAt, + int? pointExpiresInDays, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Check.fromJson(j), 'updateCheck', { @@ -84,8 +85,8 @@ extension CheckAPI on PokepayAPI { 'id': id, 'amount': amount, 'description': description, - 'expiresAt': datetimeConv.toJson(expiresAt), - 'pointExpiresAt': datetimeConv.toJson(pointExpiresAt), + 'expiresAt': datetimeConv.toJson(expiresAt!), + 'pointExpiresAt': datetimeConv.toJson(pointExpiresAt!), 'pointExpiresInDays': pointExpiresInDays, }, ); diff --git a/lib/bank_api/cpm_token.dart b/lib/bank_api/cpm_token.dart deleted file mode 100644 index a96087f..0000000 --- a/lib/bank_api/cpm_token.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:meta/meta.dart'; - -import '../pokepay_sdk.dart'; -import '../responses.dart'; - -extension AccountAPI on PokepayAPI { - Future getCpmToken({ - @required String cpmToken, - Map metadata, - }) async { - return await invokeMethod( - (j) => AccountCpmToken.fromJson(j), - 'getCpmToken', - { - 'env': this.env.index, - 'accessToken': this.accessToken, - 'cpmToken': cpmToken, - 'metadata': metadata, - }, - ); - } -} diff --git a/lib/bank_api/private_money.dart b/lib/bank_api/private_money.dart old mode 100644 new mode 100755 index e734a81..9f292ab --- a/lib/bank_api/private_money.dart +++ b/lib/bank_api/private_money.dart @@ -1,23 +1,24 @@ import 'package:meta/meta.dart'; -import 'package:pokepay_flutter_sdk/responses/paginated_coupons.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; +import '/responses/paginated_coupons.dart'; import '../pokepay_sdk.dart'; import '../responses.dart'; extension PrivateMoney on PokepayAPI { Future searchPrivateMoneys({ - String name, + String? name, bool includeExclusive = false, - String before, - String after, - int perPage, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedPrivateMoneys.fromJson(j), 'searchPrivateMoneys', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'name': name, 'includeExclusive': includeExclusive, 'before': before, @@ -28,17 +29,17 @@ extension PrivateMoney on PokepayAPI { } Future getPrivateMoneyCoupons({ - @required String privateMoneyId, - String before, - String after, - int perPage, + required String privateMoneyId, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedCoupons.fromJson(j), 'getPrivateMoneyCoupons', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'privateMoneyId': privateMoneyId, 'before': before, 'after': after, diff --git a/lib/bank_api/terminal.dart b/lib/bank_api/terminal.dart old mode 100644 new mode 100755 index a3dbd4a..908ff53 --- a/lib/bank_api/terminal.dart +++ b/lib/bank_api/terminal.dart @@ -1,13 +1,14 @@ import 'package:meta/meta.dart'; +import 'package:pokepay_flutter_sdk/pokepay_flutter_sdk_platform_interface.dart'; import '../pokepay_sdk.dart'; import '../responses.dart'; extension TerminalAPI on PokepayAPI { Future addTerminalPublicKey({ - @required String key, + required String key, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => ServerKey.fromJson(j), 'addTerminalPublicKey', { @@ -19,7 +20,7 @@ extension TerminalAPI on PokepayAPI { } Future getTerminal() async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Terminal.fromJson(j), "getTerminal", { @@ -30,11 +31,11 @@ extension TerminalAPI on PokepayAPI { } Future updateTerminal({ - @required String accountId, - @required String name, - String pushToken, + required String accountId, + required String name, + String? pushToken, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Terminal.fromJson(j), 'updateTerminal', { diff --git a/lib/bank_api/transaction.dart b/lib/bank_api/transaction.dart old mode 100644 new mode 100755 index 7b48ed7..d4a2c26 --- a/lib/bank_api/transaction.dart +++ b/lib/bank_api/transaction.dart @@ -4,21 +4,22 @@ import 'package:meta/meta.dart'; import '../parameters/product.dart'; import '../pokepay_sdk.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; import '../responses.dart'; extension TransactionAPI on PokepayAPI { Future createUserTransactionWithBill({ - @required String billId, - String accountId, - double amount, - String couponId, + required String billId, + String? accountId, + double? amount, + String? couponId, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => UserTransaction.fromJson(j), 'createUserTransactionWithBill', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'billId': billId, 'accountId': accountId, 'amount': amount, @@ -28,16 +29,16 @@ extension TransactionAPI on PokepayAPI { } Future createUserTransactionWithCashtray({ - @required String cashtrayId, - String accountId, - String couponId, + required String cashtrayId, + String? accountId, + String? couponId, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => UserTransaction.fromJson(j), 'createUserTransactionWithCashtray', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'cashtrayId': cashtrayId, 'accountId': accountId, 'couponId' : couponId, @@ -46,15 +47,15 @@ extension TransactionAPI on PokepayAPI { } Future createUserTransactionWithCheck({ - @required String checkId, - String accountId, + required String checkId, + String? accountId, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => UserTransaction.fromJson(j), 'createUserTransactionWithCheck', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'checkId': checkId, 'accountId': accountId, }, @@ -62,17 +63,17 @@ extension TransactionAPI on PokepayAPI { } Future createUserTransactionWithCpm({ - @required String cpmToken, - String accountId, - @required double amount, - List products, + required String cpmToken, + String? accountId, + required double amount, + List? products, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => UserTransaction.fromJson(j), 'createUserTransactionWithCpm', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'cpmToken': cpmToken, 'accountId': accountId, 'amount': amount, @@ -82,16 +83,16 @@ extension TransactionAPI on PokepayAPI { } Future createUserTransactionWithJwt({ - @required String data, - String accountId, - String couponId, + required String data, + String? accountId, + String? couponId, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => JwtResult.fromJson(j), 'createUserTransactionWithJwt', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'data': data, 'accountId': accountId, 'couponId' : couponId @@ -100,46 +101,46 @@ extension TransactionAPI on PokepayAPI { } Future getUserTransaction({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => UserTransaction.fromJson(j), 'getUserTransaction', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, }, ); } Future cancelUserTransaction({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => NoContent.fromJson(j), 'cancelUserTransaction', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, }, ); } Future sendToAccount({ - @required String accountId, - @required double amount, - String receiverTerminalId, - String senderAccountId, - String description, + required String accountId, + required double amount, + String? receiverTerminalId, + String? senderAccountId, + String? description, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => UserTransaction.fromJson(j), 'sendToAccount', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'accountId': accountId, 'amount': amount, 'receiverTerminalId': receiverTerminalId, @@ -150,18 +151,18 @@ extension TransactionAPI on PokepayAPI { } Future sendToUser({ - @required String userId, - @required double amount, - String receiverTerminalId, - String senderAccountId, - String description, + required String userId, + required double amount, + String? receiverTerminalId, + String? senderAccountId, + String? description, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => UserTransaction.fromJson(j), 'sendToUser', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'userId': userId, 'amount': amount, 'receiverTerminalId': receiverTerminalId, diff --git a/lib/bank_api/user.dart b/lib/bank_api/user.dart old mode 100644 new mode 100755 index 732d3ad..ec8e43a --- a/lib/bank_api/user.dart +++ b/lib/bank_api/user.dart @@ -1,6 +1,7 @@ import 'package:meta/meta.dart'; import '../pokepay_sdk.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; import '../responses/no_content.dart'; import '../responses/paginated_accounts.dart'; import '../responses/paginated_transactions.dart'; @@ -8,15 +9,15 @@ import '../responses/user.dart'; extension UserAPI on PokepayAPI { Future deleteUserEmail({ - @required String id, - @required String email, + required String id, + required String email, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => NoContent.fromJson(j), 'deleteUserEmail', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, 'email': email, }, @@ -24,17 +25,17 @@ extension UserAPI on PokepayAPI { } Future getUserAccounts({ - @required String id, - String before, - String after, - int perPage, + required String id, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedAccounts.fromJson(j), 'getUserAccounts', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, 'before': before, 'after': after, @@ -44,17 +45,17 @@ extension UserAPI on PokepayAPI { } Future getUserTransactions({ - @required String id, - String before, - String after, - int perPage, + required String id, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedTransactions.fromJson(j), 'getUserTransactions', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, 'before': before, 'after': after, @@ -64,29 +65,29 @@ extension UserAPI on PokepayAPI { } Future registerUserEmail({ - @required String token, + required String token, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => NoContent.fromJson(j), 'registerUserEmail', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'token': token, }, ); } Future sendConfirmationEmail({ - @required String id, - @required String email, + required String id, + required String email, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => NoContent.fromJson(j), 'sendConfirmationEmail', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, 'email': email, }, @@ -94,15 +95,15 @@ extension UserAPI on PokepayAPI { } Future updateUser({ - @required String id, - String name, + required String id, + String? name, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => User.fromJson(j), 'updateUser', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, 'name': name, }, diff --git a/lib/custom_datetime_converter.dart b/lib/custom_datetime_converter.dart old mode 100644 new mode 100755 index 768b0bb..62fc605 --- a/lib/custom_datetime_converter.dart +++ b/lib/custom_datetime_converter.dart @@ -1,20 +1,26 @@ import 'package:intl/intl.dart'; -import 'package:json_annotation/json_annotation.dart'; + + +abstract class CustomJsonConverter { + T? fromJson(S json); + S? toJson(T object); +} + DateFormat customDateFormatter = DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); -class CustomDateTimeConverter implements JsonConverter { +class CustomDateTimeConverter implements CustomJsonConverter { const CustomDateTimeConverter(); @override - DateTime fromJson(String utcStringDate) { + DateTime? fromJson(String? utcStringDate) { if (utcStringDate == null) { return null; } else { int microsecond = 0; utcStringDate = utcStringDate.replaceAllMapped(new RegExp(r'([0-9]{3})Z$'), (match) { - microsecond = int.parse(match.group(1)); + microsecond = int.parse(match.group(1)!); return ''; }); return customDateFormatter @@ -25,9 +31,9 @@ class CustomDateTimeConverter implements JsonConverter { } @override - String toJson(DateTime localDateTime) { + String toJson(DateTime? localDateTime) { if (localDateTime == null) { - return null; + return "null"; } else { return customDateFormatter.format(localDateTime.toUtc()) + localDateTime.microsecond.toString().padLeft(3, '0') + diff --git a/lib/messaging_api/message.dart b/lib/messaging_api/message.dart old mode 100644 new mode 100755 index 0ce2a55..24a4aa3 --- a/lib/messaging_api/message.dart +++ b/lib/messaging_api/message.dart @@ -1,45 +1,45 @@ import 'package:meta/meta.dart'; - import '../pokepay_sdk.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; import '../responses.dart'; extension MessageAPI on PokepayAPI { Future getMessage({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Message.fromJson(j), 'getMessage', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, }, ); } Future getMessageUnreadCount() async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => MessageUnreadCount.fromJson(j), 'getMessageUnreadCount', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, }, ); } Future listMessages({ - String before, - String after, - int perPage, + String? before, + String? after, + int? perPage, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => PaginatedMessages.fromJson(j), 'listMessages', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'before': before, 'after': after, 'perPage': perPage, @@ -48,32 +48,32 @@ extension MessageAPI on PokepayAPI { } Future receiveMessageAttachment({ - @required String id, + required String id, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => MessageAttachment.fromJson(j), 'receiveMessageAttachment', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'id': id, }, ); } Future sendMessage({ - @required String toUserId, - double amount, - @required String subject, - @required String body, - String fromAccountId, + required String toUserId, + double? amount, + required String subject, + required String body, + String? fromAccountId, }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => Message.fromJson(j), 'sendMessage', { - 'env': this.env.index, - 'accessToken': this.accessToken, + 'env': env.index, + 'accessToken': accessToken, 'toUserId': toUserId, 'amount': amount, 'subject': subject, diff --git a/lib/o_auth_api/o_auth.dart b/lib/o_auth_api/o_auth.dart old mode 100644 new mode 100755 index 6c87995..0180304 --- a/lib/o_auth_api/o_auth.dart +++ b/lib/o_auth_api/o_auth.dart @@ -1,6 +1,7 @@ import 'package:meta/meta.dart'; import '../pokepay_sdk.dart'; +import '../pokepay_flutter_sdk_platform_interface.dart'; import '../responses.dart'; class PokepayOAuthAPI { @@ -11,12 +12,12 @@ class PokepayOAuthAPI { }); Future exchangeAuthCode({ - @required String code, - @required String clientId, - @required String clientSecret, + required String code, + required String clientId, + required String clientSecret, String grantType = "authorization_code", }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => AccessToken.fromJson(j), 'exchangeAuthCode', { @@ -30,12 +31,12 @@ class PokepayOAuthAPI { } Future refreshAccessToken({ - @required String refreshToken, - @required String clientId, - @required String clientSecret, + required String refreshToken, + required String clientId, + required String clientSecret, String grantType = "refresh_token", }) async { - return await invokeMethod( + return await PokepayFlutterSdkPlatform.instance.invokeMethod( (j) => AccessToken.fromJson(j), 'refreshAccessToken', { diff --git a/lib/parameters/product.dart b/lib/parameters/product.dart old mode 100644 new mode 100755 index b1a5cad..73fb144 --- a/lib/parameters/product.dart +++ b/lib/parameters/product.dart @@ -1,23 +1,19 @@ import 'dart:convert'; - -import 'package:json_annotation/json_annotation.dart'; - part 'product.g.dart'; -@JsonSerializable() + class Product { - @JsonKey(nullable: false) + final String janCode; - @JsonKey(nullable: false) final String name; - final double unitPrice; - final double price; - final bool isDiscounted; - final String other; + final double? unitPrice; + final double? price; + final bool? isDiscounted; + final String? other; Product({ - this.janCode, - this.name, + required this.janCode, + required this.name, this.unitPrice, this.price, this.isDiscounted, @@ -29,14 +25,14 @@ class Product { Map toJson() => _$ProductToJson(this); factory Product.create({ - String janCodePrimary, - String janCodeSecondary, - String name, - double unitPrice, - double price, - bool isDiscounted = false, - double amount, - String amountUnit, + required String janCodePrimary, + String? janCodeSecondary, + required String name, + double? unitPrice, + double? price, + bool? isDiscounted = false, + double? amount, + String? amountUnit, }) { String janCode = janCodePrimary; if (janCodeSecondary != null) { diff --git a/lib/parameters/product.g.dart b/lib/parameters/product.g.dart old mode 100644 new mode 100755 index 6c015c9..c4c6cde --- a/lib/parameters/product.g.dart +++ b/lib/parameters/product.g.dart @@ -10,8 +10,8 @@ Product _$ProductFromJson(Map json) { return Product( janCode: json['jan_code'] as String, name: json['name'] as String, - unitPrice: (json['unit_price'] as num)?.toDouble(), - price: (json['price'] as num)?.toDouble(), + unitPrice: (json['unit_price'] as num).toDouble(), + price: (json['price'] as num).toDouble(), isDiscounted: json['is_discounted'] as bool, other: json['other'] as String, ); diff --git a/lib/pokepay_flutter_sdk_method_channel.dart b/lib/pokepay_flutter_sdk_method_channel.dart new file mode 100644 index 0000000..5ab3488 --- /dev/null +++ b/lib/pokepay_flutter_sdk_method_channel.dart @@ -0,0 +1,127 @@ +import 'dart:convert'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; +import 'package:pokepay_flutter_sdk/responses/access_token.dart'; +import 'package:pokepay_flutter_sdk/responses/error.dart'; +import '/pokepay_sdk.dart'; + +import 'parameters/product.dart'; +import 'pokepay_flutter_sdk_platform_interface.dart'; +import 'responses/user_transaction.dart'; + +/// An implementation of [PokepayFlutterSdkPlatform] that uses method channels. +class MethodChannelPokepayFlutterSdk extends PokepayFlutterSdkPlatform { + /// The method channel used to interact with the native platform. + @visibleForTesting + final methodChannel = const MethodChannel('jp.pokepay/pokepay_sdk'); + + @override + Future getPlatformVersion() async { + final version = await methodChannel.invokeMethod('getPlatformVersion'); + return version; + } + + @override + Future invokeMethod(T Function(Map data) factory,String methodName, Map args) async { + try { + final String json = await methodChannel.invokeMethod(methodName, args); + return factory(jsonDecode(json)); + } on PlatformException catch (e) { + final String code = e.code; + final String message = e.message??""; + if (code == "APIRequestError") { + final APIRequestError err = APIRequestError.fromJson(jsonDecode(message)); + throw err; + } else if (code == "OAuthRequestError") { + final OAuthRequestError err = OAuthRequestError.fromJson(jsonDecode(message)); + throw err; + } else { + final ProcessingError err = ProcessingError.fromJson(jsonDecode(message)); + throw err; + } + } + } + + @override + Future getAccessToken(String code,APIEnv env,String clientId,String clientSecret)async { + final String json = await methodChannel.invokeMethod('exchangeAuthCode', { + 'env' : envToInt(env), + 'code': code, + 'clientId': clientId, + 'clientSecret': clientSecret, + }); + return AccessToken.fromJson(jsonDecode(json)); + } + + @override + String getAuthorizationUrl(APIEnv env,String clientId,{String contact = ""}) { + String base = "${getWebBaseURL(env)}/oauth/authorize?client_id=$clientId&response_type=code"; + if (contact.isNotEmpty) { + return "$base&contact=${Uri.encodeFull(contact)}"; + } else { + return base; + } + } + + @override + Future scanToken({ + required String scanToken, + double? amount, + String? accountId, + List? products, + String? couponId, + required APIEnv env, + required String accessToken + }) async { + String json = await methodChannel.invokeMethod('scanToken',{ + 'env': envToInt(env), + 'accessToken': accessToken, + 'scanToken': scanToken, + 'amount': amount, + 'accountId': accountId, + 'products': products, + 'couponId': couponId, + }); + return UserTransaction.fromJson(jsonDecode(json)); + } + + @override + Future createToken({ + required bool isMerchant, + required double amount, + String? description, + int? expiresIn, + String? accountId, + List? products, + required APIEnv env, + required String accessToken + }) async { + String json = await methodChannel.invokeMethod('createToken', { + 'env': envToInt(env), + 'accessToken': accessToken, + 'isMerchant': isMerchant, + 'amount': amount, + 'description': description, + 'expiresIn': expiresIn, + 'accountId': accountId, + 'products': products + }); + return json; + } + + @override + Future invokeToken({ + required String token, + required APIEnv env, + required String accessToken + }) async { + String json = await methodChannel.invokeMethod('scanToken', { + 'env': envToInt(env), + 'accessToken': accessToken, + 'token': token, + }); + return UserTransaction.fromJson(jsonDecode(json)); + } + +} diff --git a/lib/pokepay_flutter_sdk_platform_interface.dart b/lib/pokepay_flutter_sdk_platform_interface.dart new file mode 100644 index 0000000..c0673f2 --- /dev/null +++ b/lib/pokepay_flutter_sdk_platform_interface.dart @@ -0,0 +1,59 @@ +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; +import 'package:pokepay_flutter_sdk/parameters/product.dart'; +import 'package:pokepay_flutter_sdk/pokepay_sdk.dart'; +import 'package:pokepay_flutter_sdk/responses/user_transaction.dart'; + +import 'pokepay_flutter_sdk_method_channel.dart'; +import 'responses/access_token.dart'; + +abstract class PokepayFlutterSdkPlatform extends PlatformInterface { + /// Constructs a PokepayFlutterSdkPlatform. + PokepayFlutterSdkPlatform() : super(token: _token); + + static final Object _token = Object(); + + static PokepayFlutterSdkPlatform _instance = MethodChannelPokepayFlutterSdk(); + + /// The default instance of [PokepayFlutterSdkPlatform] to use. + /// + /// Defaults to [MethodChannelPokepayFlutterSdk]. + static PokepayFlutterSdkPlatform get instance => _instance; + + /// Platform-specific implementations should set this with their own + /// platform-specific class that extends [PokepayFlutterSdkPlatform] when + /// they register themselves. + static set instance(PokepayFlutterSdkPlatform instance) { + PlatformInterface.verifyToken(instance, _token); + _instance = instance; + } + + Future getPlatformVersion(); + + Future invokeMethod(T Function(Map data) factory, String methodName, Map args); + + Future getAccessToken(String code, APIEnv env, String clientId, String clientSecret); + + String getAuthorizationUrl(APIEnv env, String clientId, {String contact = ""}); + + Future scanToken({required String scanToken, double? amount, String? accountId, List? products, String? couponId, + required APIEnv env, + required String accessToken}); + + Future createToken({ + required bool isMerchant, + required double amount, + String? description, + int? expiresIn, + String? accountId, + List? products, + required APIEnv env, + required String accessToken + }); + + Future invokeToken({ + required String token, + required APIEnv env, + required String accessToken + }); + +} diff --git a/lib/pokepay_sdk.dart b/lib/pokepay_sdk.dart index 33fc24a..7d0917e 100644 --- a/lib/pokepay_sdk.dart +++ b/lib/pokepay_sdk.dart @@ -1,17 +1,14 @@ -import 'dart:async'; -import 'dart:convert'; -import 'package:flutter/services.dart'; -import 'package:logger/logger.dart'; -import 'package:meta/meta.dart'; +import 'dart:async'; import 'bank_api/terminal.dart'; import 'bank_api/transaction.dart'; import 'parameters/product.dart'; +import 'pokepay_flutter_sdk_platform_interface.dart'; import 'responses.dart'; import 'bank_api/bill.dart'; import 'bank_api/check.dart'; -import 'bank_api/cpm_token.dart'; +import 'bank_api/account.dart'; enum APIEnv { PRODUCTION, @@ -26,13 +23,18 @@ enum APIEnv { // case 2: return Env.QA; // case 3: return Env.DEVELOPMENT; // default: return Env.DEVELOPMENT; -int envToInt(APIEnv apiEnv){ - switch(apiEnv){ - case APIEnv.PRODUCTION: return 0; - case APIEnv.SANDBOX: return 1; - case APIEnv.QA: return 2; - case APIEnv.DEVELOPMENT: return 3; - default: return 3; +int envToInt(APIEnv apiEnv) { + switch (apiEnv) { + case APIEnv.PRODUCTION: + return 0; + case APIEnv.SANDBOX: + return 1; + case APIEnv.QA: + return 2; + case APIEnv.DEVELOPMENT: + return 3; + default: + return 3; } } @@ -45,81 +47,55 @@ enum LogLevel { wtf, } -var logger = (() { - Logger.level = Level.warning; - Logger rt = new Logger( - printer: PrettyPrinter( - methodCount: 2, // number of method calls to be displayed - errorMethodCount: 8, // number of method calls if stacktrace is provided - lineLength: 120, // width of the output - colors: true, // Colorful log messages - printEmojis: false, // Print an emoji for each log message - printTime: true, // Should each log print contain a timestamp - ), - ); - return rt; -})(); +// var logger = (() { +// Logger.level = Level.warning; +// Logger rt = new Logger( +// printer: PrettyPrinter( +// methodCount: 2, // number of method calls to be displayed +// errorMethodCount: 8, // number of method calls if stacktrace is provided +// lineLength: 120, // width of the output +// colors: true, // Colorful log messages +// printEmojis: false, // Print an emoji for each log message +// printTime: true, // Should each log print contain a timestamp +// ), +// ); +// return rt; +// })(); -void setLogLevel(LogLevel lev) { - Level l; - switch (lev) { - case LogLevel.verbose: - l = Level.verbose; - break; - case LogLevel.debug: - l = Level.debug; - break; - case LogLevel.info: - l = Level.info; - break; - case LogLevel.warning: - l = Level.warning; - break; - case LogLevel.error: - l = Level.error; - break; - case LogLevel.wtf: - l = Level.wtf; - break; - } - Logger.level = l; - logger = new Logger( - printer: PrettyPrinter( - methodCount: 2, // number of method calls to be displayed - errorMethodCount: 8, // number of method calls if stacktrace is provided - lineLength: 120, // width of the output - colors: true, // Colorful log messages - printEmojis: false, // Print an emoji for each log message - printTime: true, // Should each log print contain a timestamp - ), - ); -} - -const MethodChannel channel = const MethodChannel('jp.pokepay/pokepay_sdk'); - -Future invokeMethod(T factory(Map data), - String methodName, Map args) async { - try { - logger.d("methodName: " + methodName + " args: " + args.toString()); - final String json = await channel.invokeMethod(methodName, args); - logger.d("json: " + json); - return factory(jsonDecode(json)); - } on PlatformException catch (e) { - final String code = e.code; - final String message = e.message; - if (code == "APIRequestError") { - final APIRequestError err = APIRequestError.fromJson(jsonDecode(message)); - throw err; - } else if (code == "OAuthRequestError") { - final OAuthRequestError err = - OAuthRequestError.fromJson(jsonDecode(message)); - throw err; - } else { - final ProcessingError err = ProcessingError.fromJson(jsonDecode(message)); - throw err; - } - } -} +// void setLogLevel(LogLevel lev) { +// Level l; +// switch (lev) { +// case LogLevel.verbose: +// l = Level.verbose; +// break; +// case LogLevel.debug: +// l = Level.debug; +// break; +// case LogLevel.info: +// l = Level.info; +// break; +// case LogLevel.warning: +// l = Level.warning; +// break; +// case LogLevel.error: +// l = Level.error; +// break; +// case LogLevel.wtf: +// l = Level.wtf; +// break; +// } +// Logger.level = l; +// logger = new Logger( +// printer: PrettyPrinter( +// methodCount: 2, // number of method calls to be displayed +// errorMethodCount: 8, // number of method calls if stacktrace is provided +// lineLength: 120, // width of the output +// colors: true, // Colorful log messages +// printEmojis: false, // Print an emoji for each log message +// printTime: true, // Should each log print contain a timestamp +// ), +// ); +// } const Map envNameMap = { APIEnv.PRODUCTION: "", @@ -129,23 +105,24 @@ const Map envNameMap = { }; String getWebBaseURL(APIEnv env) { - String name = envNameMap[env]; - String suffix = ((name.length > 0) ? ("-" + name) : ""); - return "https://www" + suffix + ".pokepay.jp"; + String name = envNameMap[env]!; + String suffix = ((name.isNotEmpty) ? ("-$name") : ""); + return "https://www$suffix.pokepay.jp"; } String getAPIBaseURL(APIEnv env) { - String name = envNameMap[env]; - String suffix = ((name.length > 0) ? ("-" + name) : ""); - return "https://api" + suffix + ".pokepay.jp"; + String name = envNameMap[env]!; + String suffix = ((name.isNotEmpty) ? ("-$name") : ""); + return "https://api$suffix.pokepay.jp"; } class PokepayAPI { final APIEnv env; final String accessToken; + PokepayAPI({ - @required this.accessToken, - @required this.env, + required this.accessToken, + required this.env, }); } @@ -158,11 +135,11 @@ String parseAsPokeregiToken(String token) { // matching final v1 = V1_QR_REG.allMatches(token); if (V1_QR_REG.hasMatch(token)) { - return v1.elementAt(0).group(1); + return v1.elementAt(0).group(1) ?? ""; } final v2 = V1_NFC_V2_QR_NFC_REG.allMatches(token); if (V1_NFC_V2_QR_NFC_REG.hasMatch(token)) { - return v2.elementAt(0).group(1); + return v2.elementAt(0).group(1) ?? ""; } return ""; } @@ -171,119 +148,102 @@ class PokepayClient { PokepayAPI api; PokepayClient({ - @required String accessToken, - APIEnv env = APIEnv.PRODUCTION, - }) : this.api = PokepayAPI( - accessToken: accessToken, - env: env, - ); + required String accessToken, + required APIEnv env, + }) : api = PokepayAPI( + accessToken: accessToken, + env: env, + ); Future getTerminalInfo() async { - return this.api.getTerminal(); + return api.getTerminal(); } Future getTokenInfo(String token) async { - if(token.startsWith(getWebBaseURL(this.api.env) + "/cashtrays/")){ + if (token.startsWith("${getWebBaseURL(api.env)}/cashtrays/")) { return TokenInfo(type: TokenType.CASHTRAY, token: ""); - }else if(token.startsWith(getWebBaseURL(this.api.env) + "/bills/")){ - final String uuid = token.substring((getWebBaseURL(this.api.env) + "/bills/").length); + } else if (token.startsWith("${getWebBaseURL(api.env)}/bills/")) { + final String uuid = token.substring(("${getWebBaseURL(api.env)}/bills/").length); final bill = await api.getBill(id: uuid); - return TokenInfo(type: TokenType.BILL, token: bill); - }else if(token.startsWith(getWebBaseURL(this.api.env) + "/checks/")){ - final String uuid = token.substring((getWebBaseURL(this.api.env) + "/checks/").length); + return TokenInfo(type: TokenType.BILL, token: token, bill: bill); + } else if (token.startsWith("${getWebBaseURL(api.env)}/checks/")) { + final String uuid = token.substring(("${getWebBaseURL(api.env)}/checks/").length); final check = await api.getCheck(id: uuid); - return TokenInfo(type: TokenType.CHECK, token: check); - }else if (RegExp(r'^([0-9A-Z]{25})$').hasMatch(token)) { + return TokenInfo(type: TokenType.CHECK, token: token, check: check); + } else if (RegExp(r'^([0-9A-Z]{25})$').hasMatch(token)) { final cpmToken = await api.getCpmToken(cpmToken: token); - return TokenInfo(type: TokenType.CPM, token: cpmToken); - }else{ + return TokenInfo(type: TokenType.CPM, token: token, cpmToken: cpmToken); + } else { String key = parseAsPokeregiToken(token); - if (key.length > 0) { - return TokenInfo(type: - TokenType.PAYREGI, - token: "" - ); + if (key.isNotEmpty) { + return TokenInfo(type: TokenType.PAYREGI, token: ""); } } return TokenInfo(type: TokenType.UNKNOWN, token: ""); } Future pay({ - @required Bill bill, - double amount, + required Bill bill, + double? amount, }) async { if (bill.amount != null && bill.amount != 0) { if (amount != 0) { - logger.w( - "You set amount on having price bill. The amount will be ignored.", - ); + // logger.w( + // "You set amount on having price bill. The amount will be ignored.", + // ); } amount = null; } - return await this.api.createUserTransactionWithBill( - billId: bill.token, - amount: amount, - ); + return await api.createUserTransactionWithBill( + billId: bill.token, + amount: amount, + ); } - Future topup({ - @required Check check, - String accountId - }) async { - return await this.api.createUserTransactionWithCheck(checkId: 'check.id', accountId: accountId); + Future topup({required Check check, String? accountId}) async { + return await api.createUserTransactionWithCheck(checkId: check.id, accountId: accountId); } - Future invokeToken({ - @required String token, - }) async { - String json = await channel.invokeMethod('scanToken', { - 'env': envToInt(this.api.env), - 'accessToken': this.api.accessToken, - 'token': token, - }); - return UserTransaction.fromJson(jsonDecode(json)); + Future invokeToken({required String token}) async { + return PokepayFlutterSdkPlatform.instance.invokeToken(token: token, env: api.env, accessToken: api.accessToken); } Future createToken({ - @required bool isMerchant, - @required double amount, - @required String description, - int expiresIn, - String accountId, - List products, + required bool isMerchant, + required double amount, + String? description, + int? expiresIn, + String? accountId, + List? products, }) async { - String json = await channel.invokeMethod('createToken', { - 'env': envToInt(this.api.env), - 'accessToken': this.api.accessToken, - 'isMerchant': isMerchant, - 'amount': amount, - 'description': description, - 'expiresIn': expiresIn, - 'accountId': accountId, - 'products': products - }); - - return json; + return PokepayFlutterSdkPlatform.instance.createToken( + env: api.env, + accessToken: api.accessToken, + isMerchant: isMerchant, + amount: amount, + description: description, + expiresIn: expiresIn, + accountId: accountId, + products: products, + ); } Future scanToken({ - @required String scanToken, - double amount, - String accountId, - List products, - String couponId, + required String scanToken, + double? amount, + String? accountId, + List? products, + String? couponId, }) async { - String json = await channel.invokeMethod('scanToken',{ - 'env': envToInt(this.api.env), - 'accessToken': this.api.accessToken, - 'scanToken': scanToken, - 'amount': amount, - 'accountId': accountId, - 'products': products, - 'couponId': couponId, - }); - - return UserTransaction.fromJson(jsonDecode(json)); + return PokepayFlutterSdkPlatform.instance.scanToken( + scanToken: scanToken, + env: api.env, + accessToken: api.accessToken, + amount: amount, + accountId: accountId, + products: products, + couponId: couponId, + ); } } @@ -293,30 +253,16 @@ class PokepayOAuthClient { final APIEnv env; PokepayOAuthClient({ - this.env = APIEnv.PRODUCTION, - @required this.clientId, - @required this.clientSecret, + required this.env, + required this.clientId, + required this.clientSecret, }); String getAuthorizationUrl({String contact = ""}) { - String base = getWebBaseURL(this.env) + - "/oauth/authorize?client_id=" + - this.clientId + - "&response_type=code"; - if (contact.length > 0) { - return base + "&contact=" + Uri.encodeFull(contact); - } else { - return base; - } + return PokepayFlutterSdkPlatform.instance.getAuthorizationUrl(env, clientId, contact: contact); } Future getAccessToken(String code) async { - final String json = await channel.invokeMethod('exchangeAuthCode', { - 'env' : envToInt(this.env), - 'code': code, - 'clientId': this.clientId, - 'clientSecret': this.clientSecret, - }); - return AccessToken.fromJson(jsonDecode(json)); + return PokepayFlutterSdkPlatform.instance.getAccessToken(code, env, clientId, clientSecret); } -} \ No newline at end of file +} diff --git a/lib/responses/_android_sdk_convert.js b/lib/responses/_android_sdk_convert.js deleted file mode 100644 index 9b677a0..0000000 --- a/lib/responses/_android_sdk_convert.js +++ /dev/null @@ -1,74 +0,0 @@ -// memo: used to generate first data from android-sdk - -var fs = require("fs"); - -const dir = '/Users/smihica/code/android-sdk/pokepaylib/src/main/java/jp/pokepay/pokepaylib/Responses'; - -function camelToSnake(camel) { - return camel.replace(/[\w]([A-Z])/g, (m) => m[0]+'_'+m[1]).toLowerCase(); -} - -function snakeToCamel(snake) { - return snake.replace(/(_\w)/g, (m) => m[1].toUpperCase()); -} - -fs.readdir(dir, (err, files) => { - files.forEach((file) => { - const fileName = camelToSnake(file).replace(/\.java$/, ''); - let output = ''; - fs.readFile(dir + '/' + file, { encoding: 'utf-8' }, (err, data) => { - let sw = false; - output += (`import 'package:json_annotation/json_annotation.dart'; - -part '${fileName}.g.dart'; - -`); - let props = []; - let className = ''; - data.split('\n').forEach((line) => { - if (line.match(/^public class (.+?) (?:.+)\{$/)) { - className = RegExp.$1; - sw = true; - output += `@JsonSerializable() -class ${className} { -`; - return; - } else if (line.match(/^\}$/)) { - sw = false; - output += ` - ${className}({ -`; - props.forEach(p => { output += ` this.${p}, -`}); - output += ` }); - - factory ${className}.fromJson(Map json) => _$${className}FromJson(json); - Map toJson() => _$${className}ToJson(this); -}`; - return; - } - if (sw) { - line = line.replace(/^( *?)public\ +(?:[^ ]+?)\ +(.+?);$/, ( - (m, j, k) => { - const prop = snakeToCamel(k); - props.push(prop); - const line = m.replace(k, prop); - return line.replace(/^( *)public/, ' public'); - } - )); - line = line.replace(/ @NonNull/, ' @JsonKey(nullable: false)'); - line = line.replace(/public/g, 'final'); - line = line.replace(/boolean/g, 'bool '); - line = line.replace(/Double/g, 'double'); - line = line.replace(/Date/g, 'DateTime'); - output += line + '\n'; - return; - } - }); - fs.writeFile('./' + fileName + '.dart', output, { encoding: 'utf-8'}, (err) => { - console.log(err); - console.log(`output ${fileName}.dart`); - }); - }); - }) -}); diff --git a/lib/responses/access_token.dart b/lib/responses/access_token.dart old mode 100644 new mode 100755 index 4bc0381..396301f --- a/lib/responses/access_token.dart +++ b/lib/responses/access_token.dart @@ -1,29 +1,62 @@ -import 'package:json_annotation/json_annotation.dart'; -import 'package:meta/meta.dart'; - import '../responses.dart'; -part 'access_token.g.dart'; -@JsonSerializable() class AccessToken extends Response { - @JsonKey(nullable: false) - final String accessToken; - @JsonKey(nullable: false) - final String refreshToken; - @JsonKey(nullable: false) - final String tokenType; - @JsonKey(nullable: false) - final int expiresIn; + + String? accessToken; + String? refreshToken; + String? tokenType; + int? expiresIn; + DateTime? createdAt; + int? validPeriod; + int? validDay; + AccessToken({ - @required this.accessToken, - @required this.refreshToken, - @required this.tokenType, - @required this.expiresIn, + this.accessToken, + this.refreshToken, + this.tokenType, + this.expiresIn, + this.createdAt, + this.validPeriod, + this.validDay, }); - factory AccessToken.fromJson(Map json) => - _$AccessTokenFromJson(json); - Map toJson() => _$AccessTokenToJson(this); + AccessToken.fromJson(Map json){ + accessToken= json['access_token'] as String; + refreshToken= json['refresh_token'] as String; + tokenType= json['token_type'] as String; + expiresIn= json['expires_in'] as int; + + createdAt = json['createdAt'] != null + ? DateTime.fromMillisecondsSinceEpoch(json['createdAt']) + : null; + validPeriod = expiresIn!~/86400; + if(json['createdAt']!=null) { + validDay = DateTime + .now() + .difference(createdAt!) + .inDays; + } + } + + bool get isExpired { + if (createdAt == null) { + return true; + } + return validPeriod! <= DateTime.now().difference(createdAt!).inDays; + } + + Map toJson() { + return { + 'access_token': accessToken, + 'refresh_token': refreshToken, + 'token_type': tokenType, + 'expires_in': expiresIn, + 'createdAt' : createdAt.toString(), + 'validPeriod' : validPeriod, + 'validDay' : validDay + }; + } } + diff --git a/lib/responses/access_token.g.dart b/lib/responses/access_token.g.dart deleted file mode 100644 index 55826b2..0000000 --- a/lib/responses/access_token.g.dart +++ /dev/null @@ -1,24 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'access_token.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -AccessToken _$AccessTokenFromJson(Map json) { - return AccessToken( - accessToken: json['access_token'] as String, - refreshToken: json['refresh_token'] as String, - tokenType: json['token_type'] as String, - expiresIn: json['expires_in'] as int, - ); -} - -Map _$AccessTokenToJson(AccessToken instance) => - { - 'access_token': instance.accessToken, - 'refresh_token': instance.refreshToken, - 'token_type': instance.tokenType, - 'expires_in': instance.expiresIn, - }; diff --git a/lib/responses/account.dart b/lib/responses/account.dart old mode 100644 new mode 100755 index a8f6c5f..157361f --- a/lib/responses/account.dart +++ b/lib/responses/account.dart @@ -1,42 +1,64 @@ -import 'package:json_annotation/json_annotation.dart'; import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; import '../responses.dart'; -part 'account.g.dart'; -@JsonSerializable() + + @CustomDateTimeConverter() class Account extends Response { - @JsonKey(nullable: false) - final String id; - @JsonKey(nullable: false) - final String name; - @JsonKey(nullable: false) - final double balance; - @JsonKey(nullable: false) - final double moneyBalance; - @JsonKey(nullable: false) - final double pointBalance; - @JsonKey(nullable: false) - final bool isSuspended; - @JsonKey(nullable: false) - final PrivateMoney privateMoney; - final DateTime nearestExpiresAt; + + String? id; + + String? name; + + double? balance; + + double? moneyBalance; + + double? pointBalance; + + bool? isSuspended; + + PrivateMoney? privateMoney; + DateTime? nearestExpiresAt; Account({ - @required this.id, - @required this.name, - @required this.balance, - @required this.moneyBalance, - @required this.pointBalance, - @required this.isSuspended, - @required this.privateMoney, + this.id, + this.name, + this.balance, + this.moneyBalance, + this.pointBalance, + this.isSuspended, + this.privateMoney, this.nearestExpiresAt, }); - factory Account.fromJson(Map json) => - _$AccountFromJson(json); - Map toJson() => _$AccountToJson(this); + Account.fromJson(Map json){ + id = json['id'] as String; + name = json['name'] as String; + balance = json['balance']==null?null:(json['balance'] as num).toDouble(); + moneyBalance = json['money_balance']==null?null: (json['money_balance'] as num).toDouble(); + pointBalance = json['point_balance']==null?null: (json['point_balance'] as num).toDouble(); + isSuspended = json['is_suspended'] as bool; + privateMoney = json['private_money'] ==null?null:PrivateMoney.fromJson(json['private_money'] as Map); + nearestExpiresAt = json['nearest_expires_at']==null?null:const CustomDateTimeConverter().fromJson(json['nearest_expires_at'].toString()); + } + + Map toJson() { + return { + 'id': id, + 'name': name, + 'balance': balance, + 'money_balance': moneyBalance, + 'point_balance': pointBalance, + 'is_suspended': isSuspended, + 'private_money': privateMoney, + 'nearest_expires_at': + const CustomDateTimeConverter().toJson(nearestExpiresAt), + }; + } + + } diff --git a/lib/responses/account.g.dart b/lib/responses/account.g.dart deleted file mode 100644 index e9e519c..0000000 --- a/lib/responses/account.g.dart +++ /dev/null @@ -1,34 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'account.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -Account _$AccountFromJson(Map json) { - return Account( - id: json['id'] as String, - name: json['name'] as String, - balance: (json['balance'] as num).toDouble(), - moneyBalance: (json['money_balance'] as num).toDouble(), - pointBalance: (json['point_balance'] as num).toDouble(), - isSuspended: json['is_suspended'] as bool, - privateMoney: - PrivateMoney.fromJson(json['private_money'] as Map), - nearestExpiresAt: const CustomDateTimeConverter() - .fromJson(json['nearest_expires_at'] as String), - ); -} - -Map _$AccountToJson(Account instance) => { - 'id': instance.id, - 'name': instance.name, - 'balance': instance.balance, - 'money_balance': instance.moneyBalance, - 'point_balance': instance.pointBalance, - 'is_suspended': instance.isSuspended, - 'private_money': instance.privateMoney, - 'nearest_expires_at': - const CustomDateTimeConverter().toJson(instance.nearestExpiresAt), - }; diff --git a/lib/responses/account_balance.dart b/lib/responses/account_balance.dart old mode 100644 new mode 100755 index 9c45d42..b7c240a --- a/lib/responses/account_balance.dart +++ b/lib/responses/account_balance.dart @@ -1,23 +1,23 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'account_balance.g.dart'; -@JsonSerializable() + class AccountBalance extends Response { - @JsonKey(nullable: false) + final DateTime expiresAt; - @JsonKey(nullable: false) + final double moneyAmount; - @JsonKey(nullable: false) + final double pointAmount; AccountBalance({ - @required this.expiresAt, - @required this.moneyAmount, - @required this.pointAmount, + required this.expiresAt, + required this.moneyAmount, + required this.pointAmount, }); factory AccountBalance.fromJson(Map json) => diff --git a/lib/responses/account_balance.g.dart b/lib/responses/account_balance.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/account_cpm_token.dart b/lib/responses/account_cpm_token.dart old mode 100644 new mode 100755 index a6042b5..582b4a6 --- a/lib/responses/account_cpm_token.dart +++ b/lib/responses/account_cpm_token.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; @@ -6,27 +6,28 @@ import '../responses.dart'; part 'account_cpm_token.g.dart'; -@JsonSerializable() + @CustomDateTimeConverter() class AccountCpmToken extends Response { - @JsonKey(nullable: false) + final String cpmToken; - @JsonKey(nullable: false) + final Account account; - final UserTransaction transaction; - @JsonKey(nullable: false) + final UserTransaction? transaction; + final List scopes; - @JsonKey(nullable: false) - final DateTime expiresAt; - final Map metadata; + + final DateTime? expiresAt; + final Map? metadata; + AccountCpmToken({ - @required this.cpmToken, - @required this.account, + required this.cpmToken, + required this.account, this.transaction, - @required this.scopes, - @required this.expiresAt, - this.metadata, + required this.scopes, + required this.expiresAt, + this.metadata }); factory AccountCpmToken.fromJson(Map json) => diff --git a/lib/responses/account_cpm_token.g.dart b/lib/responses/account_cpm_token.g.dart old mode 100644 new mode 100755 index 55f5803..163ae95 --- a/lib/responses/account_cpm_token.g.dart +++ b/lib/responses/account_cpm_token.g.dart @@ -14,9 +14,8 @@ AccountCpmToken _$AccountCpmTokenFromJson(Map json) { ? null : UserTransaction.fromJson(json['transaction'] as Map), scopes: (json['scopes'] as List).map((e) => e as String).toList(), - expiresAt: - const CustomDateTimeConverter().fromJson(json['expires_at'] as String), - metadata: json['metadata'] as Map, + expiresAt: json['expiresAt'] != null?const CustomDateTimeConverter().fromJson(json['expires_at'] as String)!:null, + metadata: json['metadata']!=null?json['metadata'] as Map:null, ); } diff --git a/lib/responses/bank_error.dart b/lib/responses/bank_error.dart old mode 100644 new mode 100755 index 6d0128e..1134533 --- a/lib/responses/bank_error.dart +++ b/lib/responses/bank_error.dart @@ -1,18 +1,18 @@ -import 'package:json_annotation/json_annotation.dart'; + part 'bank_error.g.dart'; -@JsonSerializable() + class BankError { - @JsonKey(nullable: false) + final String type; - @JsonKey(nullable: false) + final String message; - final Object errors; + final Object? errors; BankError({ - this.type, - this.message, + required this.type, + required this.message, this.errors, }); diff --git a/lib/responses/bank_error.g.dart b/lib/responses/bank_error.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/bill.dart b/lib/responses/bill.dart old mode 100644 new mode 100755 index 1252194..ce13695 --- a/lib/responses/bill.dart +++ b/lib/responses/bill.dart @@ -1,39 +1,33 @@ import 'package:meta/meta.dart'; -import 'package:json_annotation/json_annotation.dart'; + import '../responses.dart'; part 'bill.g.dart'; -@JsonSerializable() + class Bill extends Response { - @JsonKey(nullable: false) + final String id; - final double amount; - @JsonKey(nullable: false) + final double? amount; final String description; - @JsonKey(nullable: false) final User user; - @JsonKey(nullable: false) final PrivateMoney privateMoney; - @JsonKey(nullable: false) final bool isOnetime; - @JsonKey(nullable: false) final bool isDisabled; - @JsonKey(nullable: false) final String token; - final double minAmount; - final double maxAmount; + final double? minAmount; + final double? maxAmount; Bill({ - @required this.id, + required this.id, this.amount, - @required this.description, - @required this.user, - @required this.privateMoney, - @required this.isOnetime, - @required this.isDisabled, - @required this.token, + required this.description, + required this.user, + required this.privateMoney, + required this.isOnetime, + required this.isDisabled, + required this.token, this.minAmount, this.maxAmount, }); diff --git a/lib/responses/bill.g.dart b/lib/responses/bill.g.dart old mode 100644 new mode 100755 index f5433ac..13aea4e --- a/lib/responses/bill.g.dart +++ b/lib/responses/bill.g.dart @@ -9,7 +9,7 @@ part of 'bill.dart'; Bill _$BillFromJson(Map json) { return Bill( id: json['id'] as String, - amount: (json['amount'] as num)?.toDouble(), + amount: json['amount']!=null?(json['amount'] as num).toDouble():0, description: json['description'] as String, user: User.fromJson(json['user'] as Map), privateMoney: @@ -17,8 +17,8 @@ Bill _$BillFromJson(Map json) { isOnetime: json['is_onetime'] as bool, isDisabled: json['is_disabled'] as bool, token: json['token'] as String, - minAmount: (json['min_amount'] as num)?.toDouble(), - maxAmount: (json['max_amount'] as num)?.toDouble(), + minAmount: json['min_amount']!=null?(json['min_amount'] as num).toDouble():null, + maxAmount: json['max_amount']!=null?(json['max_amount'] as num).toDouble():null, ); } diff --git a/lib/responses/cashtray.dart b/lib/responses/cashtray.dart old mode 100644 new mode 100755 index 666fea8..d24a961 --- a/lib/responses/cashtray.dart +++ b/lib/responses/cashtray.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; @@ -6,36 +6,36 @@ import '../responses.dart'; part 'cashtray.g.dart'; -@JsonSerializable() + @CustomDateTimeConverter() class Cashtray extends Response { - @JsonKey(nullable: false) + final String id; - @JsonKey(nullable: false) + final double amount; - @JsonKey(nullable: false) + final String description; - @JsonKey(nullable: false) + final User user; - @JsonKey(nullable: false) + final PrivateMoney privateMoney; - @JsonKey(nullable: false) + final DateTime expiresAt; - final DateTime canceledAt; - @JsonKey(nullable: false) + final DateTime? canceledAt; + final String token; - final CashtrayAttempt attempt; - final UserTransaction transaction; + final CashtrayAttempt? attempt; + final UserTransaction? transaction; Cashtray({ - @required this.id, - @required this.amount, - @required this.description, - @required this.user, - @required this.privateMoney, - @required this.expiresAt, + required this.id, + required this.amount, + required this.description, + required this.user, + required this.privateMoney, + required this.expiresAt, this.canceledAt, - @required this.token, + required this.token, this.attempt, this.transaction, }); diff --git a/lib/responses/cashtray.g.dart b/lib/responses/cashtray.g.dart old mode 100644 new mode 100755 index 0c70af2..12cc8fe --- a/lib/responses/cashtray.g.dart +++ b/lib/responses/cashtray.g.dart @@ -15,7 +15,7 @@ Cashtray _$CashtrayFromJson(Map json) { privateMoney: PrivateMoney.fromJson(json['private_money'] as Map), expiresAt: - const CustomDateTimeConverter().fromJson(json['expires_at'] as String), + const CustomDateTimeConverter().fromJson(json['expires_at'] as String)!, canceledAt: const CustomDateTimeConverter().fromJson(json['canceled_at'] as String), token: json['token'] as String, diff --git a/lib/responses/cashtray_attempt.dart b/lib/responses/cashtray_attempt.dart old mode 100644 new mode 100755 index d768d51..3aa34b0 --- a/lib/responses/cashtray_attempt.dart +++ b/lib/responses/cashtray_attempt.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; @@ -6,26 +6,26 @@ import '../responses.dart'; part 'cashtray_attempt.g.dart'; -@JsonSerializable() + @CustomDateTimeConverter() class CashtrayAttempt extends Response { - @JsonKey(nullable: false) + final User user; - final Account account; - @JsonKey(nullable: false) + final Account? account; + final int statusCode; - final String errorType; - final String errorMessage; - @JsonKey(nullable: false) + final String? errorType; + final String? errorMessage; + final DateTime createdAt; CashtrayAttempt({ - @required this.user, + required this.user, this.account, - @required this.statusCode, + required this.statusCode, this.errorType, this.errorMessage, - @required this.createdAt, + required this.createdAt, }); factory CashtrayAttempt.fromJson(Map json) => diff --git a/lib/responses/cashtray_attempt.g.dart b/lib/responses/cashtray_attempt.g.dart old mode 100644 new mode 100755 index a26ce0c..d87ca52 --- a/lib/responses/cashtray_attempt.g.dart +++ b/lib/responses/cashtray_attempt.g.dart @@ -16,7 +16,7 @@ CashtrayAttempt _$CashtrayAttemptFromJson(Map json) { errorType: json['error_type'] as String, errorMessage: json['error_message'] as String, createdAt: - const CustomDateTimeConverter().fromJson(json['created_at'] as String), + const CustomDateTimeConverter().fromJson(json['created_at'] as String)!, ); } diff --git a/lib/responses/cashtray_attempts.dart b/lib/responses/cashtray_attempts.dart old mode 100644 new mode 100755 index 38e8dc5..359af83 --- a/lib/responses/cashtray_attempts.dart +++ b/lib/responses/cashtray_attempts.dart @@ -1,17 +1,17 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'cashtray_attempts.g.dart'; -@JsonSerializable() + class CashtrayAttempts extends Response { - @JsonKey(nullable: false) + final List rows; CashtrayAttempts({ - @required this.rows, + required this.rows, }); factory CashtrayAttempts.fromJson(Map json) => diff --git a/lib/responses/cashtray_attempts.g.dart b/lib/responses/cashtray_attempts.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/check.dart b/lib/responses/check.dart old mode 100644 new mode 100755 index 3ca170f..de4696d --- a/lib/responses/check.dart +++ b/lib/responses/check.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; @@ -6,46 +6,46 @@ import '../responses.dart'; part 'check.g.dart'; -@JsonSerializable() + @CustomDateTimeConverter() class Check extends Response { - @JsonKey(nullable: false) + final String id; - @JsonKey(nullable: false) + final double amount; - @JsonKey(nullable: false) + final double moneyAmount; - @JsonKey(nullable: false) + final double pointAmount; - @JsonKey(nullable: false) + final String description; - @JsonKey(nullable: false) + final User user; - @JsonKey(nullable: false) + final PrivateMoney privateMoney; - @JsonKey(nullable: false) - final bool isOnetime; - @JsonKey(nullable: false) - final bool isDisabled; - @JsonKey(nullable: false) - final DateTime expiresAt; - @JsonKey(nullable: false) + + final bool? isOnetime; + + final bool? isDisabled; + + final DateTime? expiresAt; + final String token; - final DateTime pointExpiresAt; - final int pointExpiresInDays; + final DateTime? pointExpiresAt; + final int? pointExpiresInDays; Check({ - @required this.id, - @required this.amount, - @required this.moneyAmount, - @required this.pointAmount, - @required this.description, - @required this.user, - @required this.privateMoney, - @required this.isOnetime, - @required this.isDisabled, - @required this.expiresAt, - @required this.token, + required this.id, + required this.amount, + required this.moneyAmount, + required this.pointAmount, + required this.description, + required this.user, + required this.privateMoney, + required this.isOnetime, + required this.isDisabled, + required this.expiresAt, + required this.token, this.pointExpiresAt, this.pointExpiresInDays, }); diff --git a/lib/responses/check.g.dart b/lib/responses/check.g.dart old mode 100644 new mode 100755 index 41c2ad0..927a0f6 --- a/lib/responses/check.g.dart +++ b/lib/responses/check.g.dart @@ -16,14 +16,14 @@ Check _$CheckFromJson(Map json) { user: User.fromJson(json['user'] as Map), privateMoney: PrivateMoney.fromJson(json['private_money'] as Map), - isOnetime: json['is_onetime'] as bool, - isDisabled: json['is_disabled'] as bool, - expiresAt: - const CustomDateTimeConverter().fromJson(json['expires_at'] as String), + isOnetime: json['is_onetime'] ==null?null:json['is_onetime'] as bool, + isDisabled: json['is_disabled'] ==null?null:json['is_disabled'] as bool, + expiresAt: json['expires_at'] ==null?null: + const CustomDateTimeConverter().fromJson(json['expires_at'] as String)!, token: json['token'] as String, - pointExpiresAt: const CustomDateTimeConverter() - .fromJson(json['point_expires_at'] as String), - pointExpiresInDays: json['point_expires_in_days'] as int, + pointExpiresAt:json['point_expires_at'] ==null?null: const CustomDateTimeConverter() + .fromJson(json['point_expires_at']), + pointExpiresInDays: json['point_expires_in_days'] , ); } @@ -42,4 +42,4 @@ Map _$CheckToJson(Check instance) => { 'point_expires_at': const CustomDateTimeConverter().toJson(instance.pointExpiresAt), 'point_expires_in_days': instance.pointExpiresInDays, - }; + }; \ No newline at end of file diff --git a/lib/responses/coupon.dart b/lib/responses/coupon.dart old mode 100644 new mode 100755 index c3f59d8..04a46bb --- a/lib/responses/coupon.dart +++ b/lib/responses/coupon.dart @@ -1,34 +1,34 @@ -import 'package:json_annotation/json_annotation.dart'; + part 'coupon.g.dart'; -@JsonSerializable() + class Coupon { - @JsonKey(nullable: false) - final String id; - @JsonKey(nullable: false) - final String name; - @JsonKey(nullable: false) - final String description; - final int discountAmount; - final int discountPercentage; - @JsonKey(nullable: false) - final DateTime startsAt; - @JsonKey(nullable: false) - final DateTime endsAt; - @JsonKey(nullable: false) - final DateTime displayStartsAt; - @JsonKey(nullable: false) - final DateTime displayEndsAt; - final int usageLimit; - final int minAmount; - @JsonKey(nullable: false) - final bool isShopSpecified; - @JsonKey(nullable: false) - final bool isDisabled; - @JsonKey(nullable: false) - final bool isHidden; - final String couponImage; + + final String? id; + + final String? name; + + final String? description; + final int?discountAmount; + final int?discountPercentage; + + final DateTime?startsAt; + + final DateTime?endsAt; + + final DateTime?displayStartsAt; + + final DateTime?displayEndsAt; + final int?usageLimit; + final int?minAmount; + + final bool? isShopSpecified; + + final bool? isDisabled; + + final bool? isHidden; + final String? couponImage; Coupon({ this.id, diff --git a/lib/responses/coupon.g.dart b/lib/responses/coupon.g.dart old mode 100644 new mode 100755 index 2ff9b4a..c0d796d --- a/lib/responses/coupon.g.dart +++ b/lib/responses/coupon.g.dart @@ -32,10 +32,10 @@ Map _$CouponToJson(Coupon instance) => { 'description': instance.description, 'discount_amount': instance.discountAmount, 'discount_percentage': instance.discountPercentage, - 'starts_at': instance.startsAt.toIso8601String(), - 'ends_at': instance.endsAt.toIso8601String(), - 'display_starts_at': instance.displayStartsAt.toIso8601String(), - 'display_ends_at': instance.displayEndsAt.toIso8601String(), + 'starts_at': instance.startsAt!.toIso8601String(), + 'ends_at': instance.endsAt!.toIso8601String(), + 'display_starts_at': instance.displayStartsAt!.toIso8601String(), + 'display_ends_at': instance.displayEndsAt!.toIso8601String(), 'usage_limit': instance.usageLimit, 'min_amount': instance.minAmount, 'is_shop_specified': instance.isShopSpecified, diff --git a/lib/responses/coupon_detail.dart b/lib/responses/coupon_detail.dart old mode 100644 new mode 100755 index 7cbfebd..9e817f3 --- a/lib/responses/coupon_detail.dart +++ b/lib/responses/coupon_detail.dart @@ -1,22 +1,20 @@ -import 'package:json_annotation/json_annotation.dart'; -import 'package:pokepay_flutter_sdk/responses.dart'; -import 'package:pokepay_flutter_sdk/responses/coupon.dart'; + +import '/responses.dart'; +import '/responses/coupon.dart'; part 'coupon_detail.g.dart'; -@JsonSerializable() + class CouponDetail extends Coupon { - final String receivedAt; - @JsonKey(nullable: false) + final String? receivedAt; final int usageCount; - @JsonKey(nullable: false) final List availableShops; CouponDetail({ this.receivedAt, - this.usageCount, - this.availableShops, + required this.usageCount, + required this.availableShops, }); factory CouponDetail.fromJson(Map json) => _$CouponDetailFromJson(json); diff --git a/lib/responses/coupon_detail.g.dart b/lib/responses/coupon_detail.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/error.dart b/lib/responses/error.dart old mode 100644 new mode 100755 index c74ea96..34cf423 --- a/lib/responses/error.dart +++ b/lib/responses/error.dart @@ -1,72 +1,72 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'error.g.dart'; -@JsonSerializable() + class Error extends Response { - @JsonKey(nullable: false) + final String type; - @JsonKey(nullable: false) + final String message; Error({ - @required this.type, - @required this.message, + required this.type, + required this.message, }); factory Error.fromJson(Map json) => _$ErrorFromJson(json); Map toJson() => _$ErrorToJson(this); } -@JsonSerializable() + class OAuthError extends Response { - @JsonKey(nullable: false) + final String error; OAuthError({ - @required this.error, + required this.error, }); factory OAuthError.fromJson(Map json) => _$OAuthErrorFromJson(json); Map toJson() => _$OAuthErrorToJson(this); } -@JsonSerializable() + class APIRequestError extends Response { - @JsonKey(nullable: false) + final int statusCode; - @JsonKey(nullable: false) + final Error error; APIRequestError({ - @required this.statusCode, - @required this.error, + required this.statusCode, + required this.error, }); factory APIRequestError.fromJson(Map json) => _$APIRequestErrorFromJson(json); Map toJson() => _$APIRequestErrorToJson(this); } -@JsonSerializable() + class ProcessingError extends Response { - @JsonKey(nullable: false) + final String message; ProcessingError({ - @required this.message, + required this.message, }); factory ProcessingError.fromJson(Map json) => _$ProcessingErrorFromJson(json); Map toJson() => _$ProcessingErrorToJson(this); } -@JsonSerializable() + class OAuthRequestError extends Response { - @JsonKey(nullable: false) + final int statusCode; - @JsonKey(nullable: false) + final OAuthError error; OAuthRequestError({ - @required this.statusCode, - @required this.error, + required this.statusCode, + required this.error, }); factory OAuthRequestError.fromJson(Map json) => _$OAuthRequestErrorFromJson(json); diff --git a/lib/responses/error.g.dart b/lib/responses/error.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/images.dart b/lib/responses/images.dart old mode 100644 new mode 100755 index ab5a4eb..c0d59fa --- a/lib/responses/images.dart +++ b/lib/responses/images.dart @@ -1,21 +1,21 @@ -import 'package:json_annotation/json_annotation.dart'; + import '../responses.dart'; part 'images.g.dart'; -@JsonSerializable() + class Images extends Response { final String card; - @JsonKey(name: "300x300") + final String res300; - @JsonKey(name: "600x600") + final String res600; Images({ - this.card, - this.res300, - this.res600, + required this.card, + required this.res300, + required this.res600, }); factory Images.fromJson(Map json) => _$ImagesFromJson(json); diff --git a/lib/responses/images.g.dart b/lib/responses/images.g.dart old mode 100644 new mode 100755 index 8666dd5..477af0f --- a/lib/responses/images.g.dart +++ b/lib/responses/images.g.dart @@ -8,9 +8,9 @@ part of 'images.dart'; Images _$ImagesFromJson(Map json) { return Images( - card: json['card'] as String, - res300: json['300x300'] as String, - res600: json['600x600'] as String, + card: json['card'].toString(), + res300: json['300x300'].toString(), + res600: json['600x600'].toString(), ); } diff --git a/lib/responses/jwt_result.dart b/lib/responses/jwt_result.dart old mode 100644 new mode 100755 index 34b441f..1f9f322 --- a/lib/responses/jwt_result.dart +++ b/lib/responses/jwt_result.dart @@ -1,13 +1,13 @@ -import 'package:json_annotation/json_annotation.dart'; + import '../responses.dart'; part 'jwt_result.g.dart'; -@JsonSerializable() + class JwtResult extends Response { - final String data; - final String error; + final String? data; + final String? error; JwtResult({ this.data, diff --git a/lib/responses/jwt_result.g.dart b/lib/responses/jwt_result.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/message.dart b/lib/responses/message.dart old mode 100644 new mode 100755 index 8d8f0e3..b75c2c2 --- a/lib/responses/message.dart +++ b/lib/responses/message.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; @@ -6,41 +6,41 @@ import '../responses.dart'; part 'message.g.dart'; -@JsonSerializable() + @CustomDateTimeConverter() class Message extends Response { - @JsonKey(nullable: false) + final String id; - @JsonKey(nullable: false) + final String subject; - @JsonKey(nullable: false) + final String body; - @JsonKey(nullable: false) + final User fromUser; - @JsonKey(nullable: false) + final User toUser; - @JsonKey(nullable: false) + final User sendBy; - @JsonKey(nullable: false) + final User sendTo; - @JsonKey(nullable: false) + final DateTime sentAt; - @JsonKey(nullable: false) + final bool isUnread; - @JsonKey(nullable: false) + final MessageAttachment attachment; Message({ - @required this.id, - @required this.subject, - @required this.body, - @required this.fromUser, - @required this.toUser, - @required this.sendBy, - @required this.sendTo, - @required this.sentAt, - @required this.isUnread, - @required this.attachment, + required this.id, + required this.subject, + required this.body, + required this.fromUser, + required this.toUser, + required this.sendBy, + required this.sendTo, + required this.sentAt, + required this.isUnread, + required this.attachment, }); factory Message.fromJson(Map json) => diff --git a/lib/responses/message.g.dart b/lib/responses/message.g.dart old mode 100644 new mode 100755 index e568fc4..0a382ff --- a/lib/responses/message.g.dart +++ b/lib/responses/message.g.dart @@ -15,7 +15,7 @@ Message _$MessageFromJson(Map json) { toUser: User.fromJson(json['to_user'] as Map), sendBy: User.fromJson(json['send_by'] as Map), sendTo: User.fromJson(json['send_to'] as Map), - sentAt: const CustomDateTimeConverter().fromJson(json['sent_at'] as String), + sentAt: const CustomDateTimeConverter().fromJson(json['sent_at'] as String)!, isUnread: json['is_unread'] as bool, attachment: MessageAttachment.fromJson(json['attachment'] as Map), diff --git a/lib/responses/message_attachment.dart b/lib/responses/message_attachment.dart old mode 100644 new mode 100755 index b6bf5b4..cb75934 --- a/lib/responses/message_attachment.dart +++ b/lib/responses/message_attachment.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; @@ -6,20 +6,20 @@ import '../responses.dart'; part 'message_attachment.g.dart'; -@JsonSerializable() + @CustomDateTimeConverter() class MessageAttachment extends Response { - final double moneyAmount; - final double pointAmount; - final PrivateMoney privateMoney; + final double? moneyAmount; + final double? pointAmount; + final PrivateMoney? privateMoney; final bool isReceived; - final DateTime expiresAt; + final DateTime? expiresAt; MessageAttachment({ this.moneyAmount, this.pointAmount, this.privateMoney, - @required this.isReceived, + required this.isReceived, this.expiresAt, }); diff --git a/lib/responses/message_attachment.g.dart b/lib/responses/message_attachment.g.dart old mode 100644 new mode 100755 index df4e29e..634a604 --- a/lib/responses/message_attachment.g.dart +++ b/lib/responses/message_attachment.g.dart @@ -8,8 +8,8 @@ part of 'message_attachment.dart'; MessageAttachment _$MessageAttachmentFromJson(Map json) { return MessageAttachment( - moneyAmount: (json['money_amount'] as num)?.toDouble(), - pointAmount: (json['point_amount'] as num)?.toDouble(), + moneyAmount: (json['money_amount'] as num).toDouble(), + pointAmount: (json['point_amount'] as num).toDouble(), privateMoney: json['private_money'] == null ? null : PrivateMoney.fromJson(json['private_money'] as Map), diff --git a/lib/responses/message_unread_count.dart b/lib/responses/message_unread_count.dart old mode 100644 new mode 100755 index eda27c8..cb58b2b --- a/lib/responses/message_unread_count.dart +++ b/lib/responses/message_unread_count.dart @@ -1,12 +1,12 @@ -import 'package:json_annotation/json_annotation.dart'; + import '../responses.dart'; part 'message_unread_count.g.dart'; -@JsonSerializable() + class MessageUnreadCount extends Response { - @JsonKey(nullable: false) + final int count; MessageUnreadCount({ diff --git a/lib/responses/message_unread_count.g.dart b/lib/responses/message_unread_count.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/no_content.dart b/lib/responses/no_content.dart old mode 100644 new mode 100755 index 587cf17..8fdbbf3 --- a/lib/responses/no_content.dart +++ b/lib/responses/no_content.dart @@ -1,10 +1,10 @@ -import 'package:json_annotation/json_annotation.dart'; + import '../responses.dart'; part 'no_content.g.dart'; -@JsonSerializable() + class NoContent extends Response { NoContent(); diff --git a/lib/responses/no_content.g.dart b/lib/responses/no_content.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/o_auth_error.dart b/lib/responses/o_auth_error.dart old mode 100644 new mode 100755 index a816283..6d20ffd --- a/lib/responses/o_auth_error.dart +++ b/lib/responses/o_auth_error.dart @@ -1,14 +1,14 @@ -import 'package:json_annotation/json_annotation.dart'; + part 'o_auth_error.g.dart'; -@JsonSerializable() + class OAuthError { - @JsonKey(nullable: false) + final String error; OAuthError({ - this.error, + required this.error, }); factory OAuthError.fromJson(Map json) => _$OAuthErrorFromJson(json); diff --git a/lib/responses/o_auth_error.g.dart b/lib/responses/o_auth_error.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/organization.dart b/lib/responses/organization.dart old mode 100644 new mode 100755 index 52028a9..99d206a --- a/lib/responses/organization.dart +++ b/lib/responses/organization.dart @@ -1,20 +1,20 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'organization.g.dart'; -@JsonSerializable() + class Organization extends Response { - @JsonKey(nullable: false) + final String code; - @JsonKey(nullable: false) + final String name; Organization({ - @required this.code, - @required this.name, + required this.code, + required this.name, }); factory Organization.fromJson(Map json) => diff --git a/lib/responses/organization.g.dart b/lib/responses/organization.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/paginated_account_balances.dart b/lib/responses/paginated_account_balances.dart old mode 100644 new mode 100755 index 0ca2873..4a7c9da --- a/lib/responses/paginated_account_balances.dart +++ b/lib/responses/paginated_account_balances.dart @@ -1,25 +1,24 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'paginated_account_balances.g.dart'; -@JsonSerializable() + class PaginatedAccountBalances extends Response { final int perPage; final int count; - final String next; - final String prev; - @JsonKey(nullable: false) + final String? next; + final String? prev; final List items; PaginatedAccountBalances({ - @required this.perPage, - @required this.count, + required this.perPage, + required this.count, this.next, this.prev, - @required this.items, + required this.items, }); factory PaginatedAccountBalances.fromJson(Map json) => diff --git a/lib/responses/paginated_account_balances.g.dart b/lib/responses/paginated_account_balances.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/paginated_accounts.dart b/lib/responses/paginated_accounts.dart old mode 100644 new mode 100755 index ac7cf77..7b5aafe --- a/lib/responses/paginated_accounts.dart +++ b/lib/responses/paginated_accounts.dart @@ -1,25 +1,24 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'paginated_accounts.g.dart'; -@JsonSerializable() + class PaginatedAccounts extends Response { final int perPage; final int count; - final String next; - final String prev; - @JsonKey(nullable: false) - final List items; + final String? next; + final String? prev; + final List? items; PaginatedAccounts({ - @required this.perPage, - @required this.count, + required this.perPage, + required this.count, this.next, this.prev, - @required this.items, + required this.items, }); factory PaginatedAccounts.fromJson(Map json) => diff --git a/lib/responses/paginated_accounts.g.dart b/lib/responses/paginated_accounts.g.dart old mode 100644 new mode 100755 index b955049..8a9ffaf --- a/lib/responses/paginated_accounts.g.dart +++ b/lib/responses/paginated_accounts.g.dart @@ -10,8 +10,8 @@ PaginatedAccounts _$PaginatedAccountsFromJson(Map json) { return PaginatedAccounts( perPage: json['per_page'] as int, count: json['count'] as int, - next: json['next'] as String, - prev: json['prev'] as String, + next: json['next'], + prev: json['prev'], items: (json['items'] as List) .map((e) => Account.fromJson(e as Map)) .toList(), diff --git a/lib/responses/paginated_coupons.dart b/lib/responses/paginated_coupons.dart old mode 100644 new mode 100755 index d4ab26e..d99f1be --- a/lib/responses/paginated_coupons.dart +++ b/lib/responses/paginated_coupons.dart @@ -1,16 +1,15 @@ -import 'package:json_annotation/json_annotation.dart'; -import 'package:pokepay_flutter_sdk/responses/coupon.dart'; + +import '/responses/coupon.dart'; part 'paginated_coupons.g.dart'; -@JsonSerializable(explicitToJson: true) + class PaginatedCoupons { - final int perPage; - final int count; - final String next; - final String prev; - @JsonKey(nullable: false) - final List items; + final int? perPage; + final int? count; + final String? next; + final String? prev; + final List? items; PaginatedCoupons({ this.perPage, diff --git a/lib/responses/paginated_coupons.g.dart b/lib/responses/paginated_coupons.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/paginated_messages.dart b/lib/responses/paginated_messages.dart old mode 100644 new mode 100755 index 1d4eb85..19a3b78 --- a/lib/responses/paginated_messages.dart +++ b/lib/responses/paginated_messages.dart @@ -1,25 +1,25 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'paginated_messages.g.dart'; -@JsonSerializable() + class PaginatedMessages extends Response { final int perPage; final int count; - final String next; - final String prev; - @JsonKey(nullable: false) + final String? next; + final String? prev; + final List items; PaginatedMessages({ - @required this.perPage, - @required this.count, + required this.perPage, + required this.count, this.next, this.prev, - @required this.items, + required this.items, }); factory PaginatedMessages.fromJson(Map json) => diff --git a/lib/responses/paginated_messages.g.dart b/lib/responses/paginated_messages.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/paginated_private_moneys.dart b/lib/responses/paginated_private_moneys.dart old mode 100644 new mode 100755 index 15bd684..b466427 --- a/lib/responses/paginated_private_moneys.dart +++ b/lib/responses/paginated_private_moneys.dart @@ -1,25 +1,24 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'paginated_private_moneys.g.dart'; -@JsonSerializable() + class PaginatedPrivateMoneys extends Response { final int perPage; final int count; - final String next; - final String prev; - @JsonKey(nullable: false) + final String? next; + final String? prev; final List items; PaginatedPrivateMoneys({ - @required this.perPage, - @required this.count, + required this.perPage, + required this.count, this.next, this.prev, - @required this.items, + required this.items, }); factory PaginatedPrivateMoneys.fromJson(Map json) => diff --git a/lib/responses/paginated_private_moneys.g.dart b/lib/responses/paginated_private_moneys.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/paginated_transactions.dart b/lib/responses/paginated_transactions.dart old mode 100644 new mode 100755 index e1617f0..c637b16 --- a/lib/responses/paginated_transactions.dart +++ b/lib/responses/paginated_transactions.dart @@ -1,25 +1,24 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'paginated_transactions.g.dart'; -@JsonSerializable() + class PaginatedTransactions extends Response { final int perPage; final int count; - final String next; - final String prev; - @JsonKey(nullable: false) + final String? next; + final String? prev; final List items; PaginatedTransactions({ - @required this.perPage, - @required this.count, + required this.perPage, + required this.count, this.next, this.prev, - @required this.items, + required this.items, }); factory PaginatedTransactions.fromJson(Map json) => diff --git a/lib/responses/paginated_transactions.g.dart b/lib/responses/paginated_transactions.g.dart old mode 100644 new mode 100755 index c16c647..6b4f6ed --- a/lib/responses/paginated_transactions.g.dart +++ b/lib/responses/paginated_transactions.g.dart @@ -11,8 +11,8 @@ PaginatedTransactions _$PaginatedTransactionsFromJson( return PaginatedTransactions( perPage: json['per_page'] as int, count: json['count'] as int, - next: json['next'] as String, - prev: json['prev'] as String, + next: json['next'], + prev: json['prev'], items: (json['items'] as List) .map((e) => UserTransaction.fromJson(e as Map)) .toList(), diff --git a/lib/responses/private_money.dart b/lib/responses/private_money.dart old mode 100644 new mode 100755 index 9b41ecb..21f7cd7 --- a/lib/responses/private_money.dart +++ b/lib/responses/private_money.dart @@ -1,63 +1,84 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'private_money.g.dart'; -@JsonSerializable() + class PrivateMoney extends Response { - @JsonKey(nullable: false) + final String id; - @JsonKey(nullable: false) + final String name; - @JsonKey(nullable: false) + final String type; - @JsonKey(nullable: false) + final String unit; - @JsonKey(nullable: false) + final String description; - @JsonKey(nullable: false) + final String onelineMessage; - final String accountImage; - @JsonKey(nullable: false) - final Images images; - @JsonKey(nullable: false) + final String? accountImage; + + final Images? images; + final Organization organization; final double maxBalance; final double transferLimit; - @JsonKey(nullable: false) - final String expirationType; + + final String? expirationType; final bool isExclusive; - final String termsUrl; - final String privacyPolicyUrl; - final String paymentActUrl; - final String commercialActUrl; - @JsonKey(nullable: false) - final bool canUseCreditCard; + final String? termsUrl; + final String? privacyPolicyUrl; + final String? paymentActUrl; + final String? commercialActUrl; + + final bool? canUseCreditCard; PrivateMoney({ - @required this.id, - @required this.name, - @required this.type, - @required this.unit, - @required this.description, - @required this.onelineMessage, + required this.id, + required this.name, + required this.type, + required this.unit, + required this.description, + required this.onelineMessage, this.accountImage, - @required this.images, - @required this.organization, - @required this.maxBalance, - @required this.transferLimit, - @required this.expirationType, - @required this.isExclusive, + required this.images, + required this.organization, + required this.maxBalance, + required this.transferLimit, + required this.expirationType, + required this.isExclusive, this.termsUrl, this.privacyPolicyUrl, this.paymentActUrl, this.commercialActUrl, - @required this.canUseCreditCard, + required this.canUseCreditCard, }); - factory PrivateMoney.fromJson(Map json) => - _$PrivateMoneyFromJson(json); + factory PrivateMoney.fromJson(Map json){ + return PrivateMoney( + id: json['id'] as String, + name: json['name'] as String, + type: json['type'] as String, + unit: json['unit'] as String, + description: json['description'] as String, + onelineMessage: json['oneline_message'] as String, + accountImage: json['account_image'].toString(), + images: json['images']==null?null:Images.fromJson(json['images'] as Map), + organization: + Organization.fromJson(json['organization'] as Map), + maxBalance: (json['max_balance'] as num).toDouble(), + transferLimit: (json['transfer_limit'] as num).toDouble(), + expirationType: json['expiration_type'], + isExclusive: json['is_exclusive'] as bool, + termsUrl: json['terms_url'], + privacyPolicyUrl: json['privacy_policy_url'], + paymentActUrl: json['payment_act_url'], + commercialActUrl: json['commercial_act_url'], + canUseCreditCard: json['can_use_credit_card'], + ); + } Map toJson() => _$PrivateMoneyToJson(this); } diff --git a/lib/responses/private_money.g.dart b/lib/responses/private_money.g.dart old mode 100644 new mode 100755 index 925dfc1..5e8236f --- a/lib/responses/private_money.g.dart +++ b/lib/responses/private_money.g.dart @@ -2,34 +2,6 @@ part of 'private_money.dart'; -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -PrivateMoney _$PrivateMoneyFromJson(Map json) { - return PrivateMoney( - id: json['id'] as String, - name: json['name'] as String, - type: json['type'] as String, - unit: json['unit'] as String, - description: json['description'] as String, - onelineMessage: json['oneline_message'] as String, - accountImage: json['account_image'] as String, - images: Images.fromJson(json['images'] as Map), - organization: - Organization.fromJson(json['organization'] as Map), - maxBalance: (json['max_balance'] as num)?.toDouble(), - transferLimit: (json['transfer_limit'] as num)?.toDouble(), - expirationType: json['expiration_type'] as String, - isExclusive: json['is_exclusive'] as bool, - termsUrl: json['terms_url'] as String, - privacyPolicyUrl: json['privacy_policy_url'] as String, - paymentActUrl: json['payment_act_url'] as String, - commercialActUrl: json['commercial_act_url'] as String, - canUseCreditCard: json['can_use_credit_card'] as bool, - ); -} - Map _$PrivateMoneyToJson(PrivateMoney instance) => { 'id': instance.id, diff --git a/lib/responses/server_key.dart b/lib/responses/server_key.dart old mode 100644 new mode 100755 index 18afab7..1bf3463 --- a/lib/responses/server_key.dart +++ b/lib/responses/server_key.dart @@ -1,16 +1,16 @@ -import 'package:json_annotation/json_annotation.dart'; + import '../responses.dart'; part 'server_key.g.dart'; -@JsonSerializable() + class ServerKey extends Response { - @JsonKey(nullable: false) + final String serverKey; ServerKey({ - this.serverKey, + required this.serverKey, }); factory ServerKey.fromJson(Map json) => diff --git a/lib/responses/server_key.g.dart b/lib/responses/server_key.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/terminal.dart b/lib/responses/terminal.dart old mode 100644 new mode 100755 index 3ef9d25..2345ae8 --- a/lib/responses/terminal.dart +++ b/lib/responses/terminal.dart @@ -1,33 +1,33 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'terminal.g.dart'; -@JsonSerializable() + class Terminal extends Response { - @JsonKey(nullable: false) + final String id; - @JsonKey(nullable: false) + final String name; - @JsonKey(nullable: false) + final String hardwareId; - final String pushService; - final String pushToken; - @JsonKey(nullable: false) + final String? pushService; + final String? pushToken; + final User user; - @JsonKey(nullable: false) + final Account account; Terminal({ - @required this.id, - @required this.name, - @required this.hardwareId, + required this.id, + required this.name, + required this.hardwareId, this.pushService, this.pushToken, - @required this.user, - @required this.account, + required this.user, + required this.account, }); factory Terminal.fromJson(Map json) => diff --git a/lib/responses/terminal.g.dart b/lib/responses/terminal.g.dart old mode 100644 new mode 100755 index a6afe51..8e656e0 --- a/lib/responses/terminal.g.dart +++ b/lib/responses/terminal.g.dart @@ -11,8 +11,8 @@ Terminal _$TerminalFromJson(Map json) { id: json['id'] as String, name: json['name'] as String, hardwareId: json['hardware_id'] as String, - pushService: json['push_service'] as String, - pushToken: json['push_token'] as String, + pushService: json['push_service'].toString(), + pushToken: json['push_token'].toString(), user: User.fromJson(json['user'] as Map), account: Account.fromJson(json['account'] as Map), ); diff --git a/lib/responses/token_info.dart b/lib/responses/token_info.dart old mode 100644 new mode 100755 index b09b1c1..fbca775 --- a/lib/responses/token_info.dart +++ b/lib/responses/token_info.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; @@ -11,22 +11,26 @@ enum TokenType { CHECK, CPM, PAYREGI, + PAYREGI_TRANSACTION, + PAYREGI_CANCEL, JWT, UNKNOWN, } -@JsonSerializable() + class TokenInfo extends Response { - @JsonKey(nullable: false) final TokenType type; - @JsonKey(nullable: false) final dynamic token; - Bill bill; - Check check; + Bill? bill; + Check? check; + AccountCpmToken? cpmToken; TokenInfo({ - @required this.type, - @required this.token, + required this.type, + required this.token, + this.bill, + this.check, + this.cpmToken }); factory TokenInfo.fromJson(Map json) => @@ -34,14 +38,14 @@ class TokenInfo extends Response { Map toJson() => _$TokenInfoToJson(this); } -@JsonSerializable() + class TokenInfoMerchant extends TokenInfo { - final AccountCpmToken cpmToken; - final Cashtray cashtray; + final AccountCpmToken? cpmToken; + final Cashtray? cashtray; TokenInfoMerchant({ - @required TokenType type, - @required String token, + required TokenType type, + required String token, this.cpmToken, this.cashtray, }) : super(type: type, token: token); diff --git a/lib/responses/token_info.g.dart b/lib/responses/token_info.g.dart old mode 100644 new mode 100755 index 1047c96..0a6a566 --- a/lib/responses/token_info.g.dart +++ b/lib/responses/token_info.g.dart @@ -8,8 +8,8 @@ part of 'token_info.dart'; TokenInfo _$TokenInfoFromJson(Map json) { return TokenInfo( - type: _$enumDecode(_$TokenTypeEnumMap, json['type']), - token: json['token'] as dynamic, + type: _$enumDecode(_$TokenTypeEnumMap, json['type'])!, + token: json['token'], ) ..bill = json['bill'] == null ? null @@ -26,19 +26,20 @@ Map _$TokenInfoToJson(TokenInfo instance) => { 'check': instance.check, }; -T _$enumDecode( +T? _$enumDecode( Map enumValues, dynamic source, { - T unknownValue, + T? unknownValue, }) { if (source == null) { throw ArgumentError('A value must be provided. Supported values: ' '${enumValues.values.join(', ')}'); } - final value = enumValues.entries - .singleWhere((e) => e.value == source, orElse: () => null) - ?.key; + final value = enumValues.entries + // .singleWhere((e) => e.value == source, orElse: () => null) + .singleWhere((e) => e.value == source,) + .key; if (value == null && unknownValue == null) { throw ArgumentError('`$source` is not one of the supported values: ' @@ -52,14 +53,15 @@ const _$TokenTypeEnumMap = { TokenType.BILL: 'BILL', TokenType.CHECK: 'CHECK', TokenType.CPM: 'CPM', - TokenType.PAYREGI: 'PAYREGI', + TokenType.PAYREGI_TRANSACTION: 'PAYREGI_TRANSACTION', + TokenType.PAYREGI_CANCEL: 'PAYREGI_CANCEL', TokenType.JWT: 'JWT', TokenType.UNKNOWN: 'UNKNOWN', }; TokenInfoMerchant _$TokenInfoMerchantFromJson(Map json) { return TokenInfoMerchant( - type: _$enumDecode(_$TokenTypeEnumMap, json['type']), + type: _$enumDecode(_$TokenTypeEnumMap, json['type'])!, token: json['token'] as String, cpmToken: json['cpm_token'] == null ? null diff --git a/lib/responses/user.dart b/lib/responses/user.dart old mode 100644 new mode 100755 index cec5577..4d6c375 --- a/lib/responses/user.dart +++ b/lib/responses/user.dart @@ -1,22 +1,21 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../responses.dart'; part 'user.g.dart'; -@JsonSerializable() + class User extends Response { - @JsonKey(nullable: false) + final String id; - @JsonKey(nullable: false) final String name; final bool isMerchant; User({ - @required this.id, - @required this.name, - @required this.isMerchant, + required this.id, + required this.name, + required this.isMerchant, }); factory User.fromJson(Map json) => _$UserFromJson(json); diff --git a/lib/responses/user.g.dart b/lib/responses/user.g.dart old mode 100644 new mode 100755 diff --git a/lib/responses/user_transaction.dart b/lib/responses/user_transaction.dart old mode 100644 new mode 100755 index c9a4efc..2172e53 --- a/lib/responses/user_transaction.dart +++ b/lib/responses/user_transaction.dart @@ -1,4 +1,4 @@ -import 'package:json_annotation/json_annotation.dart'; + import 'package:meta/meta.dart'; import '../custom_datetime_converter.dart'; @@ -6,45 +6,45 @@ import '../responses.dart'; part 'user_transaction.g.dart'; -@JsonSerializable() + @CustomDateTimeConverter() class UserTransaction extends Response { - @JsonKey(nullable: false) + final String id; - @JsonKey(nullable: false) + final String type; - @JsonKey(nullable: false) + final bool isModified; - @JsonKey(nullable: false) + final User user; - @JsonKey(nullable: false) + final double balance; - @JsonKey(nullable: false) + final double amount; - @JsonKey(nullable: false) + final double moneyAmount; - @JsonKey(nullable: false) + final double pointAmount; - @JsonKey(nullable: false) + final Account account; - @JsonKey(nullable: false) + final String description; - @JsonKey(nullable: false) + final DateTime doneAt; - final double customerBalance; + final double? customerBalance; UserTransaction({ - @required this.id, - @required this.type, - @required this.isModified, - @required this.user, - @required this.balance, - @required this.amount, - @required this.moneyAmount, - @required this.pointAmount, - @required this.account, - @required this.description, - @required this.doneAt, + required this.id, + required this.type, + required this.isModified, + required this.user, + required this.balance, + required this.amount, + required this.moneyAmount, + required this.pointAmount, + required this.account, + required this.description, + required this.doneAt, this.customerBalance, }); diff --git a/lib/responses/user_transaction.g.dart b/lib/responses/user_transaction.g.dart old mode 100644 new mode 100755 index 769224b..5ca3b7c --- a/lib/responses/user_transaction.g.dart +++ b/lib/responses/user_transaction.g.dart @@ -18,8 +18,8 @@ UserTransaction _$UserTransactionFromJson(Map json) { pointAmount: (json['point_amount'] as num).toDouble(), account: Account.fromJson(json['account'] as Map), description: json['description'] as String, - doneAt: const CustomDateTimeConverter().fromJson(json['done_at'] as String), - customerBalance: (json['customer_balance'] as num)?.toDouble(), + doneAt: const CustomDateTimeConverter().fromJson(json['done_at'] as String)!, + customerBalance: json['customer_balance']!=null ?(json['customer_balance'] as num).toDouble():null, ); } diff --git a/pubspec.yaml b/pubspec.yaml index 5e1298b..6f5a8b0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,26 +1,28 @@ name: pokepay_flutter_sdk description: SDK for pokepay -version: 1.0.4 +version: 1.0.6 homepage: https://pay.pocket-change.jp/ environment: - sdk: ">=2.8.3 <3.0.0" - flutter: ">=1.17.3" + sdk: ">=2.17.1 <3.0.0" + flutter: ">=2.5.0" dependencies: flutter: sdk: flutter - json_annotation: ^3.0.1 + plugin_platform_interface: ^2.0.2 + json_annotation: ^4.0.0 logger: ^0.9.1 - intl: ^0.16.1 + intl: ^0.17.0 meta: ^1.3.0 dev_dependencies: flutter_test: sdk: flutter - build_runner: ^1.10.0 - json_serializable: ^3.3.0 - test: ^1.14.4 + flutter_lints: ^2.0.0 + build_runner: ^2.1.11 + json_serializable: ^6.2.0 + test: ^1.21.1 flutter: plugin: