From 46aa527028bad26f0e3c9a3b4210a60fbefde0d3 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Sun, 8 Jan 2023 09:48:49 +0300 Subject: [PATCH 1/6] android app package name change. --- android/app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index e17c83eb..02304bd9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -37,7 +37,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.test_sa" + applicationId "com.hmg.atoms" // You can update the following values to match your application needs. // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. minSdkVersion 21 From 079a11ad9812777868776c544e9f4098dcb856e9 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 13 Mar 2023 14:19:41 +0300 Subject: [PATCH 2/6] uat url added. --- lib/controllers/api_routes/urls.dart | 3 +- pubspec.lock | 450 ++++++++++++++++++--------- 2 files changed, 298 insertions(+), 155 deletions(-) diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index f2e26591..58c41d6f 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -1,7 +1,8 @@ class URLs{ URLs._(); static const host2 = "http://194.163.164.213/atoms/api"; - static const host1 = "https://atoms.hmg.com/api"; + // static const host1 = "https://atoms.hmg.com/api"; // production url + static const host1 = "https://atomsdev.hmg.com/api"; // uat url // API Routes static const login = "/handle/user/login"; // post diff --git a/pubspec.lock b/pubspec.lock index 8608b33d..414df867 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,252 +5,288 @@ packages: dependency: transitive description: name: _flutterfire_internals - url: "https://pub.dartlang.org" + sha256: "3ff770dfff04a67b0863dff205a0936784de1b87a5e99b11c693fc10e66a9ce3" + url: "https://pub.dev" source: hosted version: "1.0.12" archive: dependency: transitive description: name: archive - url: "https://pub.dartlang.org" + sha256: ed7cc591a948744994714375caf9a2ce89e1d82e8243997c8a2994d57181c212 + url: "https://pub.dev" source: hosted version: "3.3.5" args: dependency: transitive description: name: args - url: "https://pub.dartlang.org" + sha256: b003c3098049a51720352d219b0bb5f219b60fbfb68e7a4748139a06a5676515 + url: "https://pub.dev" source: hosted version: "2.3.1" async: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + url: "https://pub.dev" source: hosted - version: "2.9.0" + version: "2.10.0" audioplayers: dependency: "direct main" description: name: audioplayers - url: "https://pub.dartlang.org" + sha256: bb506873ab4fb663db9b47243754ef669adf684dbe6ba8b57c26e27b834065c4 + url: "https://pub.dev" source: hosted version: "1.2.0" audioplayers_android: dependency: transitive description: name: audioplayers_android - url: "https://pub.dartlang.org" + sha256: "53969a1c5d94ebdaef72e334f1c0ea2f3946ab2baa8d398a9584ac27baf4f037" + url: "https://pub.dev" source: hosted version: "1.1.3" audioplayers_darwin: dependency: transitive description: name: audioplayers_darwin - url: "https://pub.dartlang.org" + sha256: dcd5a4ceef5aa3d04e8ae49441f13a3d9f93fe6e9e88fe121ff6b6f391b2a40b + url: "https://pub.dev" source: hosted version: "1.0.4" audioplayers_linux: dependency: transitive description: name: audioplayers_linux - url: "https://pub.dartlang.org" + sha256: ea1cb9a5c9389b38f293ee1375b22b02fb1d1f7a2e1517fcb674297dd074dc7b + url: "https://pub.dev" source: hosted version: "1.0.2" audioplayers_platform_interface: dependency: transitive description: name: audioplayers_platform_interface - url: "https://pub.dartlang.org" + sha256: "589c3106d0c656540e81ac2c7a78a9414a4a6534ae7b77f06ddb5d6aa5dc653c" + url: "https://pub.dev" source: hosted version: "2.1.0" audioplayers_web: dependency: transitive description: name: audioplayers_web - url: "https://pub.dartlang.org" + sha256: "13fb044a443276223774f8ed1f8d2b82f443cf8980edd0e172e55967c1556a49" + url: "https://pub.dev" source: hosted version: "2.1.0" audioplayers_windows: dependency: transitive description: name: audioplayers_windows - url: "https://pub.dartlang.org" + sha256: "87964ddece7275b97277935df67af60536155914c81c633f708914b99433129b" + url: "https://pub.dev" source: hosted version: "1.1.1" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" cached_network_image: dependency: "direct main" description: name: cached_network_image - url: "https://pub.dartlang.org" + sha256: fd3d0dc1d451f9a252b32d95d3f0c3c487bc41a75eba2e6097cb0b9c71491b15 + url: "https://pub.dev" source: hosted version: "3.2.3" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - url: "https://pub.dartlang.org" + sha256: bb2b8403b4ccdc60ef5f25c70dead1f3d32d24b9d6117cfc087f496b178594a7 + url: "https://pub.dev" source: hosted version: "2.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - url: "https://pub.dartlang.org" + sha256: b8eb814ebfcb4dea049680f8c1ffb2df399e4d03bf7a352c775e26fa06e02fa0 + url: "https://pub.dev" source: hosted version: "1.0.2" carousel_slider: dependency: "direct main" description: name: carousel_slider - url: "https://pub.dartlang.org" + sha256: "9c695cc963bf1d04a47bd6021f68befce8970bcd61d24938e1fb0918cf5d9c42" + url: "https://pub.dev" source: hosted version: "4.2.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" + sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + url: "https://pub.dev" source: hosted version: "1.2.1" checked_yaml: dependency: transitive description: name: checked_yaml - url: "https://pub.dartlang.org" + sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + url: "https://pub.dev" source: hosted version: "2.0.2" cli_util: dependency: transitive description: name: cli_util - url: "https://pub.dartlang.org" + sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c" + url: "https://pub.dev" source: hosted version: "0.3.5" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" convert: dependency: transitive description: name: convert - url: "https://pub.dartlang.org" + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" source: hosted version: "3.1.1" cross_file: dependency: transitive description: name: cross_file - url: "https://pub.dartlang.org" + sha256: f71079978789bc2fe78d79227f1f8cfe195b31bbd8db2399b0d15a4b96fb843b + url: "https://pub.dev" source: hosted version: "0.3.3+2" crypto: dependency: transitive description: name: crypto - url: "https://pub.dartlang.org" + sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + url: "https://pub.dev" source: hosted version: "3.0.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.dartlang.org" + sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be + url: "https://pub.dev" source: hosted version: "1.0.5" dbus: dependency: transitive description: name: dbus - url: "https://pub.dartlang.org" + sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" + url: "https://pub.dev" source: hosted version: "0.7.8" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted version: "1.3.1" ffi: dependency: transitive description: name: ffi - url: "https://pub.dartlang.org" + sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + url: "https://pub.dev" source: hosted version: "2.0.1" file: dependency: transitive description: name: file - url: "https://pub.dartlang.org" + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" source: hosted version: "6.1.4" firebase_core: dependency: "direct main" description: name: firebase_core - url: "https://pub.dartlang.org" + sha256: c129209ba55f3d4272c89fb4a4994c15bea77fb6de63a82d45fb6bc5c94e4355 + url: "https://pub.dev" source: hosted version: "2.4.1" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - url: "https://pub.dartlang.org" + sha256: "5fab93f5b354648efa62e7cc829c90efb68c8796eecf87e0888cae2d5f3accd4" + url: "https://pub.dev" source: hosted version: "4.5.2" firebase_core_web: dependency: transitive description: name: firebase_core_web - url: "https://pub.dartlang.org" + sha256: "18b35ce111b0a4266abf723c825bcf9d4e2519d13638cc7f06f2a8dd960c75bc" + url: "https://pub.dev" source: hosted version: "2.1.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - url: "https://pub.dartlang.org" + sha256: dc010a6436333029fba858415fe65887c3fe44d8f6e6ea162bb8d3dd764fbcb6 + url: "https://pub.dev" source: hosted version: "14.2.1" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - url: "https://pub.dartlang.org" + sha256: abda2d766486096eb1c568c7b20aef46180596c8b0708190b929133ff03e0a8d + url: "https://pub.dev" source: hosted version: "4.2.10" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - url: "https://pub.dartlang.org" + sha256: "7a0ce957bd2210e8636325152234728874dad039f1c7271ba1be5c752fdc5888" + url: "https://pub.dev" source: hosted version: "3.2.11" flare_flutter: dependency: "direct main" description: name: flare_flutter - url: "https://pub.dartlang.org" + sha256: "99d63c60f00fac81249ce6410ee015d7b125c63d8278a30da81edf3317a1f6a0" + url: "https://pub.dev" source: hosted version: "3.0.2" flutter: @@ -262,91 +298,104 @@ packages: dependency: transitive description: name: flutter_blurhash - url: "https://pub.dartlang.org" + sha256: "05001537bd3fac7644fa6558b09ec8c0a3f2eba78c0765f88912882b1331a5c6" + url: "https://pub.dev" source: hosted version: "0.7.0" flutter_cache_manager: dependency: transitive description: name: flutter_cache_manager - url: "https://pub.dartlang.org" + sha256: "32cd900555219333326a2d0653aaaf8671264c29befa65bbd9856d204a4c9fb3" + url: "https://pub.dev" source: hosted version: "3.3.0" flutter_keyboard_visibility: dependency: transitive description: name: flutter_keyboard_visibility - url: "https://pub.dartlang.org" + sha256: "86b71bbaffa38e885f5c21b1182408b9be6951fd125432cf6652c636254cef2d" + url: "https://pub.dev" source: hosted version: "5.4.0" flutter_keyboard_visibility_linux: dependency: transitive description: name: flutter_keyboard_visibility_linux - url: "https://pub.dartlang.org" + sha256: "6fba7cd9bb033b6ddd8c2beb4c99ad02d728f1e6e6d9b9446667398b2ac39f08" + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_keyboard_visibility_macos: dependency: transitive description: name: flutter_keyboard_visibility_macos - url: "https://pub.dartlang.org" + sha256: c5c49b16fff453dfdafdc16f26bdd8fb8d55812a1d50b0ce25fc8d9f2e53d086 + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_keyboard_visibility_platform_interface: dependency: transitive description: name: flutter_keyboard_visibility_platform_interface - url: "https://pub.dartlang.org" + sha256: e43a89845873f7be10cb3884345ceb9aebf00a659f479d1c8f4293fcb37022a4 + url: "https://pub.dev" source: hosted version: "2.0.0" flutter_keyboard_visibility_web: dependency: transitive description: name: flutter_keyboard_visibility_web - url: "https://pub.dartlang.org" + sha256: d3771a2e752880c79203f8d80658401d0c998e4183edca05a149f5098ce6e3d1 + url: "https://pub.dev" source: hosted version: "2.0.0" flutter_keyboard_visibility_windows: dependency: transitive description: name: flutter_keyboard_visibility_windows - url: "https://pub.dartlang.org" + sha256: fc4b0f0b6be9b93ae527f3d527fb56ee2d918cd88bbca438c478af7bcfd0ef73 + url: "https://pub.dev" source: hosted version: "1.0.0" flutter_launcher_icons: dependency: "direct main" description: name: flutter_launcher_icons - url: "https://pub.dartlang.org" + sha256: a9de6706cd844668beac27c0aed5910fa0534832b3c2cad61a5fd977fce82a5d + url: "https://pub.dev" source: hosted version: "0.10.0" flutter_lints: dependency: "direct dev" description: name: flutter_lints - url: "https://pub.dartlang.org" + sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c + url: "https://pub.dev" source: hosted version: "2.0.1" flutter_local_notifications: dependency: "direct main" description: name: flutter_local_notifications - url: "https://pub.dartlang.org" + sha256: f222919a34545931e47b06000836b5101baeffb0e6eb5a4691d2d42851740dd9 + url: "https://pub.dev" source: hosted version: "12.0.4" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - url: "https://pub.dartlang.org" + sha256: "3c6d6db334f609a92be0c0915f40871ec56f5d2adf01e77ae364162c587c0ca8" + url: "https://pub.dev" source: hosted version: "2.0.0" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - url: "https://pub.dartlang.org" + sha256: "5ec1feac5f7f7d9266759488bc5f76416152baba9aa1b26fe572246caa00d1ab" + url: "https://pub.dev" source: hosted version: "6.0.0" flutter_localizations: @@ -358,35 +407,40 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - url: "https://pub.dartlang.org" + sha256: "60fc7b78455b94e6de2333d2f95196d32cf5c22f4b0b0520a628804cb463503b" + url: "https://pub.dev" source: hosted version: "2.0.7" flutter_sound: dependency: "direct main" description: name: flutter_sound - url: "https://pub.dartlang.org" + sha256: "090a4694b11ecc744c2010621c4ffc5fe7c3079d304ea014961a72c7b72cfe6c" + url: "https://pub.dev" source: hosted version: "9.2.13" flutter_sound_platform_interface: dependency: transitive description: name: flutter_sound_platform_interface - url: "https://pub.dartlang.org" + sha256: "4537eaeb58a32748c42b621ad6116f7f4c6ee0a8d6ffaa501b165fe1c9df4753" + url: "https://pub.dev" source: hosted version: "9.2.13" flutter_sound_web: dependency: transitive description: name: flutter_sound_web - url: "https://pub.dartlang.org" + sha256: ad4ca92671a1879e1f613e900bbbdb8170b20d57d1e4e6363018fe56b055594f + url: "https://pub.dev" source: hosted version: "9.2.13" flutter_svg: dependency: transitive description: name: flutter_svg - url: "https://pub.dartlang.org" + sha256: "6ff9fa12892ae074092de2fa6a9938fb21dbabfdaa2ff57dc697ff912fc8d4b2" + url: "https://pub.dev" source: hosted version: "1.1.6" flutter_test: @@ -398,7 +452,8 @@ packages: dependency: "direct main" description: name: flutter_typeahead - url: "https://pub.dartlang.org" + sha256: "0ec56e1deac7556f3616f3cd53c9a25bf225dc8b72e9f44b5a7717e42bb467b5" + url: "https://pub.dev" source: hosted version: "4.1.1" flutter_web_plugins: @@ -410,413 +465,472 @@ packages: dependency: "direct main" description: name: fluttertoast - url: "https://pub.dartlang.org" + sha256: "7cc92eabe01e3f1babe1571c5560b135dfc762a34e41e9056881e2196b178ec1" + url: "https://pub.dev" source: hosted version: "8.1.2" font_awesome_flutter: dependency: "direct main" description: name: font_awesome_flutter - url: "https://pub.dartlang.org" + sha256: "875dbb9ec1ad30d68102019ceb682760d06c72747c1c5b7885781b95f88569cc" + url: "https://pub.dev" source: hosted version: "10.3.0" graphs: dependency: transitive description: name: graphs - url: "https://pub.dartlang.org" + sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + url: "https://pub.dev" source: hosted version: "2.2.0" http: dependency: "direct main" description: name: http - url: "https://pub.dartlang.org" + sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" + url: "https://pub.dev" source: hosted version: "0.13.5" http_parser: dependency: transitive description: name: http_parser - url: "https://pub.dartlang.org" + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" source: hosted version: "4.0.2" image: dependency: transitive description: name: image - url: "https://pub.dartlang.org" + sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6" + url: "https://pub.dev" source: hosted version: "3.3.0" image_picker: dependency: "direct main" description: name: image_picker - url: "https://pub.dartlang.org" + sha256: a8f2f0aed50c03230ab37e93ca2905c50b6c4097245345956eb24a88f45328cd + url: "https://pub.dev" source: hosted version: "0.8.6" image_picker_android: dependency: transitive description: name: image_picker_android - url: "https://pub.dartlang.org" + sha256: b22718074bcecfd0d5008e5fe1ab89db157e125c015b0776ab57ce2160167b82 + url: "https://pub.dev" source: hosted version: "0.8.5+4" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - url: "https://pub.dartlang.org" + sha256: "7d319fb74955ca46d9bf7011497860e3923bb67feebcf068f489311065863899" + url: "https://pub.dev" source: hosted version: "2.1.10" image_picker_ios: dependency: transitive description: name: image_picker_ios - url: "https://pub.dartlang.org" + sha256: "356426b01c5acd493db244dd6122e9864ef712d4f97b1bfa8cf29809efc06d8b" + url: "https://pub.dev" source: hosted version: "0.8.6+5" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface - url: "https://pub.dartlang.org" + sha256: "7cef2f28f4f2fef99180f636c3d446b4ccbafd6ba0fad2adc9a80c4040f656b8" + url: "https://pub.dev" source: hosted version: "2.6.2" intl: dependency: "direct main" description: name: intl - url: "https://pub.dartlang.org" + sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" + url: "https://pub.dev" source: hosted version: "0.17.0" js: dependency: transitive description: name: js - url: "https://pub.dartlang.org" + sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" + url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "0.6.5" json_annotation: dependency: transitive description: name: json_annotation - url: "https://pub.dartlang.org" + sha256: "3520fa844009431b5d4491a5a778603520cdc399ab3406332dcc50f93547258c" + url: "https://pub.dev" source: hosted version: "4.7.0" lints: dependency: transitive description: name: lints - url: "https://pub.dartlang.org" + sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + url: "https://pub.dev" source: hosted version: "2.0.1" logger: dependency: transitive description: name: logger - url: "https://pub.dartlang.org" + sha256: "5076f09225f91dc49289a4ccb92df2eeea9ea01cf7c26d49b3a1f04c6a49eec1" + url: "https://pub.dev" source: hosted version: "1.1.0" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + url: "https://pub.dev" source: hosted - version: "0.12.12" + version: "0.12.13" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.dartlang.org" + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" source: hosted - version: "0.1.5" + version: "0.2.0" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + url: "https://pub.dev" source: hosted version: "1.8.0" mime: dependency: transitive description: name: mime - url: "https://pub.dartlang.org" + sha256: "52e38f7e1143ef39daf532117d6b8f8f617bf4bcd6044ed8c29040d20d269630" + url: "https://pub.dev" source: hosted version: "1.0.3" nested: dependency: transitive description: name: nested - url: "https://pub.dartlang.org" + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" source: hosted version: "1.0.0" octo_image: dependency: transitive description: name: octo_image - url: "https://pub.dartlang.org" + sha256: "107f3ed1330006a3bea63615e81cf637433f5135a52466c7caa0e7152bca9143" + url: "https://pub.dev" source: hosted version: "1.0.2" package_info: dependency: "direct main" description: name: package_info - url: "https://pub.dartlang.org" + sha256: "6c07d9d82c69e16afeeeeb6866fe43985a20b3b50df243091bfc4a4ad2b03b75" + url: "https://pub.dev" source: hosted version: "2.0.2" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + url: "https://pub.dev" source: hosted version: "1.8.2" path_drawing: dependency: transitive description: name: path_drawing - url: "https://pub.dartlang.org" + sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977 + url: "https://pub.dev" source: hosted version: "1.0.1" path_parsing: dependency: transitive description: name: path_parsing - url: "https://pub.dartlang.org" + sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + url: "https://pub.dev" source: hosted version: "1.0.1" path_provider: dependency: transitive description: name: path_provider - url: "https://pub.dartlang.org" + sha256: "050e8e85e4b7fecdf2bb3682c1c64c4887a183720c802d323de8a5fd76d372dd" + url: "https://pub.dev" source: hosted version: "2.0.11" path_provider_android: dependency: transitive description: name: path_provider_android - url: "https://pub.dartlang.org" + sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e + url: "https://pub.dev" source: hosted version: "2.0.22" path_provider_ios: dependency: transitive description: name: path_provider_ios - url: "https://pub.dartlang.org" + sha256: "03d639406f5343478352433f00d3c4394d52dac8df3d847869c5e2333e0bbce8" + url: "https://pub.dev" source: hosted version: "2.0.11" path_provider_linux: dependency: transitive description: name: path_provider_linux - url: "https://pub.dartlang.org" + sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 + url: "https://pub.dev" source: hosted version: "2.1.7" path_provider_macos: dependency: transitive description: name: path_provider_macos - url: "https://pub.dartlang.org" + sha256: "2a97e7fbb7ae9dcd0dfc1220a78e9ec3e71da691912e617e8715ff2a13086ae8" + url: "https://pub.dev" source: hosted version: "2.0.6" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - url: "https://pub.dartlang.org" + sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 + url: "https://pub.dev" source: hosted version: "2.0.5" path_provider_windows: dependency: transitive description: name: path_provider_windows - url: "https://pub.dartlang.org" + sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c + url: "https://pub.dev" source: hosted version: "2.1.3" pedantic: dependency: transitive description: name: pedantic - url: "https://pub.dartlang.org" + sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602" + url: "https://pub.dev" source: hosted version: "1.11.1" permission_handler: dependency: "direct main" description: name: permission_handler - url: "https://pub.dartlang.org" + sha256: "33c6a1253d1f95fd06fa74b65b7ba907ae9811f9d5c1d3150e51417d04b8d6a8" + url: "https://pub.dev" source: hosted version: "10.2.0" permission_handler_android: dependency: transitive description: name: permission_handler_android - url: "https://pub.dartlang.org" + sha256: "8028362b40c4a45298f1cbfccd227c8dd6caf0e27088a69f2ba2ab15464159e2" + url: "https://pub.dev" source: hosted version: "10.2.0" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - url: "https://pub.dartlang.org" + sha256: "9c370ef6a18b1c4b2f7f35944d644a56aa23576f23abee654cf73968de93f163" + url: "https://pub.dev" source: hosted version: "9.0.7" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface - url: "https://pub.dartlang.org" + sha256: "68abbc472002b5e6dfce47fe9898c6b7d8328d58b5d2524f75e277c07a97eb84" + url: "https://pub.dev" source: hosted version: "3.9.0" permission_handler_windows: dependency: transitive description: name: permission_handler_windows - url: "https://pub.dartlang.org" + sha256: f67cab14b4328574938ecea2db3475dad7af7ead6afab6338772c5f88963e38b + url: "https://pub.dev" source: hosted version: "0.1.2" petitparser: dependency: transitive description: name: petitparser - url: "https://pub.dartlang.org" + sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" + url: "https://pub.dev" source: hosted version: "5.1.0" platform: dependency: transitive description: name: platform - url: "https://pub.dartlang.org" + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + url: "https://pub.dev" source: hosted version: "3.1.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.dartlang.org" + sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + url: "https://pub.dev" source: hosted version: "2.1.3" pointycastle: dependency: transitive description: name: pointycastle - url: "https://pub.dartlang.org" + sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 + url: "https://pub.dev" source: hosted version: "3.6.2" process: dependency: transitive description: name: process - url: "https://pub.dartlang.org" + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" source: hosted version: "4.2.4" provider: dependency: "direct main" description: name: provider - url: "https://pub.dartlang.org" + sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f + url: "https://pub.dev" source: hosted version: "6.0.5" qr_code_scanner: dependency: "direct main" description: name: qr_code_scanner - url: "https://pub.dartlang.org" + sha256: f23b68d893505a424f0bd2e324ebea71ed88465d572d26bb8d2e78a4749591fd + url: "https://pub.dev" source: hosted version: "1.0.1" recase: dependency: transitive description: name: recase - url: "https://pub.dartlang.org" + sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213 + url: "https://pub.dev" source: hosted version: "4.1.0" rive: dependency: "direct main" description: name: rive - url: "https://pub.dartlang.org" + sha256: "22e3755b75f4ea4492d2fecf4fc2acf1c8d0073df39781d290a20cbfe74c3760" + url: "https://pub.dev" source: hosted version: "0.9.1" rxdart: dependency: transitive description: name: rxdart - url: "https://pub.dartlang.org" + sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + url: "https://pub.dev" source: hosted version: "0.27.7" share: dependency: "direct main" description: name: share - url: "https://pub.dartlang.org" + sha256: "97e6403f564ed1051a01534c2fc919cb6e40ea55e60a18ec23cee6e0ce19f4be" + url: "https://pub.dev" source: hosted version: "2.0.4" shared_preferences: dependency: "direct main" description: name: shared_preferences - url: "https://pub.dartlang.org" + sha256: "76917b7d4b9526b2ba416808a7eb9fb2863c1a09cf63ec85f1453da240fa818a" + url: "https://pub.dev" source: hosted version: "2.0.15" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - url: "https://pub.dartlang.org" + sha256: "8e251f3c986002b65fed6396bce81f379fb63c27317d49743cf289fd0fd1ab97" + url: "https://pub.dev" source: hosted version: "2.0.14" shared_preferences_ios: dependency: transitive description: name: shared_preferences_ios - url: "https://pub.dartlang.org" + sha256: "585a14cefec7da8c9c2fb8cd283a3bb726b4155c0952afe6a0caaa7b2272de34" + url: "https://pub.dev" source: hosted version: "2.1.1" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - url: "https://pub.dartlang.org" + sha256: fbc3cd6826896b66a5f576b025e4f344f780c84ea7f8203097a353370607a2c8 + url: "https://pub.dev" source: hosted version: "2.1.2" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos - url: "https://pub.dartlang.org" + sha256: "81b6a60b2d27020eb0fc41f4cebc91353047309967901a79ee8203e40c42ed46" + url: "https://pub.dev" source: hosted version: "2.0.5" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - url: "https://pub.dartlang.org" + sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3 + url: "https://pub.dev" source: hosted version: "2.1.0" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - url: "https://pub.dartlang.org" + sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958 + url: "https://pub.dev" source: hosted version: "2.0.4" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - url: "https://pub.dartlang.org" + sha256: "07c274c2115d4d5e4280622abb09f0980e2c5b1fcdc98ae9f59a3bad5bfc1f26" + url: "https://pub.dev" source: hosted version: "2.1.2" signature: dependency: "direct main" description: name: signature - url: "https://pub.dartlang.org" + sha256: ad23383717dfa926204695ef6928ff513a77387be1b4a8c685099ce3ec35e5f8 + url: "https://pub.dev" source: hosted version: "5.3.0" sky_engine: @@ -828,196 +942,224 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" source: hosted - version: "1.9.0" + version: "1.9.1" speech_to_text: dependency: "direct main" description: name: speech_to_text - url: "https://pub.dartlang.org" + sha256: ff8fbd31d039bdbac6c7ec9f0516d37df2cbea62c45198326d3b64034e6fb920 + url: "https://pub.dev" source: hosted version: "6.1.1" speech_to_text_macos: dependency: transitive description: name: speech_to_text_macos - url: "https://pub.dartlang.org" + sha256: "6b5575e5a8346be1779838b0a482c259474965b5943668830b479147a75b5bfc" + url: "https://pub.dev" source: hosted version: "1.0.2" speech_to_text_platform_interface: dependency: transitive description: name: speech_to_text_platform_interface - url: "https://pub.dartlang.org" + sha256: "13d90215a7554b9a8c1ce47c0a1739af8eacd2cf196ca66351e54dfd2172746d" + url: "https://pub.dev" source: hosted version: "2.0.1" sqflite: dependency: transitive description: name: sqflite - url: "https://pub.dartlang.org" + sha256: "2b1697c7b78576fdc722c358f16f62171bd56e92dc13422d9e44be3fc446c276" + url: "https://pub.dev" source: hosted version: "2.2.2" sqflite_common: dependency: transitive description: name: sqflite_common - url: "https://pub.dartlang.org" + sha256: "0c21a187d645aa65da5be6997c0c713eed61e049158870ae2de157e6897067ab" + url: "https://pub.dev" source: hosted version: "2.4.0+2" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" synchronized: dependency: transitive description: name: synchronized - url: "https://pub.dartlang.org" + sha256: "7b530acd9cb7c71b0019a1e7fa22c4105e675557a4400b6a401c71c5e0ade1ac" + url: "https://pub.dev" source: hosted version: "3.0.0+3" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + url: "https://pub.dev" source: hosted - version: "0.4.12" + version: "0.4.16" timezone: dependency: transitive description: name: timezone - url: "https://pub.dartlang.org" + sha256: "24c8fcdd49a805d95777a39064862133ff816ebfffe0ceff110fb5960e557964" + url: "https://pub.dev" source: hosted version: "0.9.1" typed_data: dependency: transitive description: name: typed_data - url: "https://pub.dartlang.org" + sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + url: "https://pub.dev" source: hosted version: "1.3.1" url_launcher: dependency: "direct main" description: name: url_launcher - url: "https://pub.dartlang.org" + sha256: "3c92b0efb5e9dcb8f846aefabf9f0f739f91682ed486b991ceda51c288e60896" + url: "https://pub.dev" source: hosted version: "6.1.7" url_launcher_android: dependency: transitive description: name: url_launcher_android - url: "https://pub.dartlang.org" + sha256: "6f91d30ce9060c204b2dbe728adb300750fa4b228e8f7ed1b961aa1ceb728799" + url: "https://pub.dev" source: hosted version: "6.0.22" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - url: "https://pub.dartlang.org" + sha256: "6ba7dddee26c9fae27c9203c424631109d73c8fa26cfa7bc3e35e751cb87f62e" + url: "https://pub.dev" source: hosted version: "6.0.17" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - url: "https://pub.dartlang.org" + sha256: "360fa359ab06bcb4f7c5cd3123a2a9a4d3364d4575d27c4b33468bd4497dd094" + url: "https://pub.dev" source: hosted version: "3.0.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - url: "https://pub.dartlang.org" + sha256: a9b3ea9043eabfaadfa3fb89de67a11210d85569086d22b3854484beab8b3978 + url: "https://pub.dev" source: hosted version: "3.0.1" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - url: "https://pub.dartlang.org" + sha256: "4eae912628763eb48fc214522e58e942fd16ce195407dbf45638239523c759a6" + url: "https://pub.dev" source: hosted version: "2.1.1" url_launcher_web: dependency: transitive description: name: url_launcher_web - url: "https://pub.dartlang.org" + sha256: "5669882643b96bb6d5786637cac727c6e918a790053b09245fd4513b8a07df2a" + url: "https://pub.dev" source: hosted version: "2.0.13" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - url: "https://pub.dartlang.org" + sha256: e3c3b16d3104260c10eea3b0e34272aaa57921f83148b0619f74c2eced9b7ef1 + url: "https://pub.dev" source: hosted version: "3.0.1" uuid: dependency: transitive description: name: uuid - url: "https://pub.dartlang.org" + sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + url: "https://pub.dev" source: hosted version: "3.0.7" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" win32: dependency: transitive description: name: win32 - url: "https://pub.dartlang.org" + sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 + url: "https://pub.dev" source: hosted version: "3.1.3" xdg_directories: dependency: transitive description: name: xdg_directories - url: "https://pub.dartlang.org" + sha256: "11541eedefbcaec9de35aa82650b695297ce668662bbd6e3911a7fabdbde589f" + url: "https://pub.dev" source: hosted version: "0.2.0+2" xml: dependency: transitive description: name: xml - url: "https://pub.dartlang.org" + sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb + url: "https://pub.dev" source: hosted version: "6.1.0" yaml: dependency: transitive description: name: yaml - url: "https://pub.dartlang.org" + sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + url: "https://pub.dev" source: hosted version: "3.1.1" sdks: From 42028f14fd0d38274f88457b5172e716b664b6bc Mon Sep 17 00:00:00 2001 From: nextwo <1234> Date: Sun, 9 Apr 2023 10:48:29 +0300 Subject: [PATCH 3/6] changed to new apis --- lib/api/device_transfer_api_client.dart | 23 ++++---- lib/api/gas_refill_api_client.dart | 46 +++++++++------- lib/api/gas_types_api_client.dart | 25 +++++++++ lib/api/service_request_api_client.dart | 2 +- lib/controllers/api_routes/urls.dart | 18 +++---- .../gas_refill/gas_types_provider.dart | 54 +++++-------------- lib/models/department.dart | 2 +- lib/models/device/device_transfer.dart | 6 +-- lib/models/device/device_transfer_info.dart | 32 +++++------ lib/models/gas_refill/gas_refill_details.dart | 8 +-- lib/models/gas_refill/gas_refill_model.dart | 8 +-- lib/models/lookup.dart | 4 +- .../update_device_transfer.dart | 2 +- .../user/gas_refill/gas_refill_details.dart | 2 +- .../widgets/status/gas_refill/gas_type.dart | 7 ++- 15 files changed, 123 insertions(+), 116 deletions(-) create mode 100644 lib/api/gas_types_api_client.dart diff --git a/lib/api/device_transfer_api_client.dart b/lib/api/device_transfer_api_client.dart index 9cb7cbe7..da6008c2 100644 --- a/lib/api/device_transfer_api_client.dart +++ b/lib/api/device_transfer_api_client.dart @@ -15,16 +15,21 @@ class DeviceTransferApiClient { factory DeviceTransferApiClient() => _instance; Future> getRequests({required List items, required int pageItemNumber}) async { - final response = await ApiClient().getJsonForResponse("${URLs.host1}${URLs.getDeviceTransfer}", queryParameters: { - "uid": "${UserApiClient().user?.id}", - "token": "${UserApiClient().user?.token}", - "page": "${(items.length) ~/ pageItemNumber}", - }, headers: { - "Content-Type": "application/json; charset=utf-8" - }); + Map body= { + "uid": "${UserApiClient().user?.id}", + "token": "${UserApiClient().user?.token}", + "page": "${(items.length) ~/ pageItemNumber}", + }; + + final response = await ApiClient().postJsonForResponse( + "${URLs.host1}${URLs.getDeviceTransfer}", + body, + isFormData: false + ); - List listJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); - return listJson.map((request) => DeviceTransfer.fromJson(request)).toList(); + Map listJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); + print(listJson); + return listJson['data'].map((request) => DeviceTransfer.fromJson(request)).toList(); } Future createRequest({ diff --git a/lib/api/gas_refill_api_client.dart b/lib/api/gas_refill_api_client.dart index 2f84f8f8..d3e27343 100644 --- a/lib/api/gas_refill_api_client.dart +++ b/lib/api/gas_refill_api_client.dart @@ -14,19 +14,24 @@ class GasRefillApiClient { factory GasRefillApiClient() => _instance; Future> getRequestPages({required List items, required int pageItemNumber}) async { - final response = await ApiClient().getJsonForResponse("${URLs.host1}${URLs.getGasRefill}", //body - headers: { - "Content-Type": "application/json; charset=utf-8" - }, - queryParameters: { - "uid": "${UserApiClient().user?.id}", - "token": "${UserApiClient().user?.token}", - "page": "${(items.length) ~/ pageItemNumber}", - }); + + Map body = { + "uid": "${UserApiClient().user?.id}", + "token": "${UserApiClient().user?.token}", + "pageSize": "${(items.length) ~/ pageItemNumber}", + }; + + + final response = await ApiClient().postJsonForResponse( + "${URLs.host1}${URLs.getGasRefill}", + body, + isFormData: false, + ); // client's request was successfully received - List requestsListJson = json.decode(utf8.decode(response.bodyBytes)); - return requestsListJson.map((request) => GasRefillModel.fromJson(request)).toList(); + var requestsListJson = json.decode(utf8.decode(response.bodyBytes)); + print(requestsListJson); + return requestsListJson['data'].map((request) => GasRefillModel.fromJson(request)).toList(); } Future createModel({ @@ -39,17 +44,18 @@ class GasRefillApiClient { "status": "0", //model.status.value.toString(), }; - body["details"] = jsonEncode(model.details + body["gazRefillDetails"] = jsonEncode(model.details ?.map((model) => { - "type": model.type?.id.toString(), - "size": model.cylinderSize?.id.toString(), - "requsted_qty": model.requestedQuantity.toString(), + "gasType": model.type?.id.toString(), + "cylinderSize": model.cylinderSize?.id.toString(), + "requestedQty": model.requestedQuantity.toString(), }) .toList()); final response = await ApiClient().postJsonForResponse( "${URLs.host1}${URLs.requestGasRefill}", body, + isFormData: false ); return GasRefillModel.fromJson(json.decode(utf8.decode(response.bodyBytes))[0]); @@ -66,12 +72,12 @@ class GasRefillApiClient { "status": newModel.status?.id.toString(), }; - body["details"] = jsonEncode(newModel.details + body["gazRefillDetails"] = jsonEncode(newModel.details ?.map((model) => { - "type": model.type?.id.toString(), - "size": model.cylinderSize?.id.toString(), - "requsted_qty": model.requestedQuantity.toString(), - "deliverd_qty": model.deliveredQuantity.toString(), + "gasType": model.type?.id.toString(), + "cylinderSize": model.cylinderSize?.id.toString(), + "requestedQty": model.requestedQuantity.toString(), + "deliverdQty": model.deliveredQuantity.toString(), }) .toList()); diff --git a/lib/api/gas_types_api_client.dart b/lib/api/gas_types_api_client.dart new file mode 100644 index 00000000..1d8ce3e3 --- /dev/null +++ b/lib/api/gas_types_api_client.dart @@ -0,0 +1,25 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; +import 'package:test_sa/api/api_client.dart'; +import 'package:test_sa/controllers/api_routes/urls.dart'; + +import '../models/lookup.dart'; + +class GasTypesApiClient{ + + static final GasTypesApiClient _instance = GasTypesApiClient._internal(); + + GasTypesApiClient._internal(); + + factory GasTypesApiClient() => _instance; + + Future > getData() async { + Response response; + response = await ApiClient().getJsonForResponse("${URLs.host1}${URLs.getGasTypes}"); + Map categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); + return categoriesListJson["data"].map((item) => Lookup.fromJson(item)).toList(); + + } + +} \ No newline at end of file diff --git a/lib/api/service_request_api_client.dart b/lib/api/service_request_api_client.dart index a702319a..f34e0190 100644 --- a/lib/api/service_request_api_client.dart +++ b/lib/api/service_request_api_client.dart @@ -92,7 +92,7 @@ class ServiceRequestApiClient { body["date"] = newDate ?? ''; body["ass_emp"] = employee?.id?.toString() ?? ''; await ApiClient().postJsonForResponse('${URLs.host1}${URLs.updateRequestDate}', body); - request?.engineerName = employee?.label; + request?.engineerName = employee?.label.toString(); } Future createServiceReport({required ServiceReport? report, required ServiceRequest? request}) async { diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index ec450674..bbc9e484 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -41,17 +41,17 @@ class URLs { static const getServiceReportDefectTypes = "/return/call/defect/type/list"; // get //gas refill - static const getGasTypes = "/return/gas/refill/types"; // get - static const getGasCylinderSize = "/return/gas/refill/size/cylinder"; // get - static const getGasStatus = "/return/gas/refill/status"; // get - static const requestGasRefill = "/create/gas/refill"; // get - static const updateGasRefill = "/update/gas/refill/"; // get - static const getGasRefill = "/search/gas/refill"; // get + static const getGasTypes = "/mobile/Lookups/GetLookup?lookupEnum=606"; // get + static const getGasCylinderSize = "/mobile/Lookups/GetLookup?lookupEnum=608"; // get + static const getGasStatus = "/mobile/Lookups/GetLookup?lookupEnum=609"; // get + static const requestGasRefill = "/mobile/GazRefill/AddGazRefill"; // get + static const updateGasRefill = "/mobile/GazRefill/UpdateGazRefill"; // get + static const getGasRefill = "/mobile/GazRefill/GetGazRefills"; // get //device transfer - static const requestDeviceTransfer = "/create/transfer/asset"; // get - static const updateDeviceTransfer = "/update/transfer/asset"; // get - static const getDeviceTransfer = "/search/transfer/asset"; // get + static const requestDeviceTransfer = "/mobile/AssetTransfer/AddAssetTransfer"; // get + static const updateDeviceTransfer = "/mobile/AssetTransfer/UpdateAssetTransfer"; // get + static const getDeviceTransfer = "/mobile/AssetTransfer/GetAssetTransfers"; // get // employee static const getEmployees = "/return/assigned/employee"; // get diff --git a/lib/controllers/providers/api/status_drop_down/gas_refill/gas_types_provider.dart b/lib/controllers/providers/api/status_drop_down/gas_refill/gas_types_provider.dart index 03ab6b24..55a677f3 100644 --- a/lib/controllers/providers/api/status_drop_down/gas_refill/gas_types_provider.dart +++ b/lib/controllers/providers/api/status_drop_down/gas_refill/gas_types_provider.dart @@ -4,16 +4,18 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; +import '../../../../../api/gas_types_api_client.dart'; import '../../../../../models/lookup.dart'; import '../../../../../models/user.dart'; import '../../../../api_routes/urls.dart'; +import '../../../loading_notifier.dart'; -class GasTypesProvider extends ChangeNotifier { +class GasTypesProvider extends LoadingNotifier { //reset provider data void reset() { - _items = null; - _loading = null; + _items?.clear(); _stateCode = null; + stopLoading(); } // state code of current request to defied error message @@ -29,44 +31,14 @@ class GasTypesProvider extends ChangeNotifier { List? get items => _items; - // when categories in-process _loading = true - // done _loading = true - // failed _loading = false - bool? _loading; - - bool? get isLoading => _loading; - - set isLoading(bool? isLoading) { - _loading = isLoading; - notifyListeners(); - } - - /// return -2 if request in progress - /// return -1 if error happen when sending request - /// return state code if request complete may be 200, 404 or 403 - /// for more details check http state manager - /// lib\controllers\http_status_manger\http_status_manger.dart - Future getData({required String? host, required User? user}) async { - if (_loading == true) return -2; - _loading = true; - notifyListeners(); - Response response; - try { - response = await get(Uri.parse((host ?? '') + URLs.getGasTypes)); - _stateCode = response.statusCode; - if (response.statusCode >= 200 && response.statusCode < 300) { - // client's request was successfully received - List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); - _items = categoriesListJson.map((item) => Lookup.fromJson(item)).toList(); - } - _loading = false; - notifyListeners(); - return response.statusCode; - } catch (error) { - _loading = false; - _stateCode = -1; + Future getData() async { + waitApiRequest(() async { + _items = await GasTypesApiClient().getData(); notifyListeners(); - return -1; - } + }, + onSuccess: () { + _stateCode = 200; + notifyListeners(); + }); } } diff --git a/lib/models/department.dart b/lib/models/department.dart index da54c314..9b1bde5c 100644 --- a/lib/models/department.dart +++ b/lib/models/department.dart @@ -1,5 +1,5 @@ class Department { - String? id; + int? id; String? name; Department({ diff --git a/lib/models/device/device_transfer.dart b/lib/models/device/device_transfer.dart index bb6d6d21..0b7a0b1b 100644 --- a/lib/models/device/device_transfer.dart +++ b/lib/models/device/device_transfer.dart @@ -2,7 +2,7 @@ import 'device.dart'; import 'device_transfer_info.dart'; class DeviceTransfer { - String? id; + int? id; String? userId; String? title; Device? device; @@ -46,8 +46,8 @@ class DeviceTransfer { title: parsedJson["title"], userId: parsedJson["uid"], device: Device.fromJson(parsedJson["eq_sn"]), - sender: DeviceTransferInfo.fromJson(parsedJson, "sender_"), - receiver: DeviceTransferInfo.fromJson(parsedJson, "receiver_"), + sender: DeviceTransferInfo.fromJson(parsedJson, "sender"), + receiver: DeviceTransferInfo.fromJson(parsedJson, "receiver"), ); } } diff --git a/lib/models/device/device_transfer_info.dart b/lib/models/device/device_transfer_info.dart index 4c18df0f..6a6fa24f 100644 --- a/lib/models/device/device_transfer_info.dart +++ b/lib/models/device/device_transfer_info.dart @@ -3,7 +3,7 @@ import '../hospital.dart'; import '../lookup.dart'; class DeviceTransferInfo { - String? userId; + int? userId; String? comment; Hospital? client; Department? department; @@ -27,18 +27,18 @@ class DeviceTransferInfo { Map toJson(bool isSender) { Map body = {}; - final baseKey = isSender ? "sender_" : "receiver_"; + final baseKey = isSender ? "sender" : "receiver"; - if (comment?.isNotEmpty ?? false) body["${baseKey}comment"] = comment!; + if (comment?.isNotEmpty ?? false) body["${baseKey}Comment"] = comment!; if (workingHours?.isNotEmpty ?? false) { - body["${baseKey}working_hours"] = workingHours!; + body["${baseKey}WorkingHours"] = workingHours!; } if (travelingHours?.isNotEmpty ?? false) { - body["${baseKey}travel_hours"] = comment!; + body["${baseKey}TravelingHours"] = travelingHours!; } final status = this.status; - if (status != null) body["${baseKey}status"] = status.id.toString(); - if (signature?.isNotEmpty ?? false) body["${baseKey}image"] = signature!; + if (status != null) body["${baseKey}MachineStatusId"] = status.id.toString(); + if (signature?.isNotEmpty ?? false) body["${baseKey}AttachmentUrl"] = signature!; return body; } @@ -62,15 +62,15 @@ class DeviceTransferInfo { factory DeviceTransferInfo.fromJson(Map parsedJson, String key) { return DeviceTransferInfo( - workingHours: parsedJson["${key}working_hours"], - travelingHours: parsedJson["${key}travel_hours"], - name: parsedJson["${key}name"], - signature: parsedJson["${key}image"], - userId: parsedJson["${key}id"], - comment: parsedJson["${key}comment"], - client: Hospital.fromJson(parsedJson["${key}client"]), - department: Department.fromJson(parsedJson["${key}department"]), - status: Lookup.fromJson(parsedJson["${key}status"]), + workingHours: parsedJson["${key}WorkingHours"], + travelingHours: parsedJson["${key}TravelingHours"], + name: parsedJson["${key}SiteName"], + signature: parsedJson["${key}AttachmentUrl"], + userId: parsedJson["${key}SiteId"], + comment: parsedJson["${key}Comment"], + client: Hospital(id: parsedJson["${key}senderAssignedEmployeeId"], name: parsedJson["${key}senderAssignedEmployeeName"]), + department: Department(id: parsedJson["${key}DepartmentId"], name: parsedJson["${key}DepartmentName"]), + status: Lookup(id: parsedJson["${key}senderMachineStatusId"], label: parsedJson["${key}senderMachineStatusName"]), ); } } diff --git a/lib/models/gas_refill/gas_refill_details.dart b/lib/models/gas_refill/gas_refill_details.dart index 077e4c3a..f9effc4c 100644 --- a/lib/models/gas_refill/gas_refill_details.dart +++ b/lib/models/gas_refill/gas_refill_details.dart @@ -23,10 +23,10 @@ class GasRefillDetails { factory GasRefillDetails.fromJson(Map parsedJson) { return GasRefillDetails( - type: Lookup.fromJson(parsedJson["type"]), - cylinderSize: Lookup.fromJson(parsedJson["size"]), - requestedQuantity: parsedJson["requsted_qty"] == null ? 0 : int.tryParse(parsedJson["requsted_qty"].toString()) ?? 0, - deliveredQuantity: parsedJson["deliverd_qty"] == null ? 0 : int.tryParse(parsedJson["deliverd_qty"].toString()) ?? 0, + type: Lookup.fromJson(parsedJson["gasType"]), + cylinderSize: Lookup.fromJson(parsedJson["cylinderSize"]), + requestedQuantity: parsedJson["requestedQty"] == null ? 0 : int.tryParse(parsedJson["requestedQty"].toString()) ?? 0, + deliveredQuantity: parsedJson["deliverdQty"] == null ? 0 : int.tryParse(parsedJson["deliverdQty"].toString()) ?? 0, model: null, ); } diff --git a/lib/models/gas_refill/gas_refill_model.dart b/lib/models/gas_refill/gas_refill_model.dart index 0ce33a99..0feef819 100644 --- a/lib/models/gas_refill/gas_refill_model.dart +++ b/lib/models/gas_refill/gas_refill_model.dart @@ -2,7 +2,7 @@ import '../lookup.dart'; import 'gas_refill_details.dart'; class GasRefillModel { - String? id; + int? id; String? userId; String? clientName; String? title; @@ -36,15 +36,15 @@ class GasRefillModel { factory GasRefillModel.fromJson(Map parsedJson) { List details = []; - if (parsedJson["details"] != null) { - List list = parsedJson["details"]; + if (parsedJson["gazRefillDetails"] != null) { + List list = parsedJson["gazRefillDetails"]; details = list.map((e) => GasRefillDetails.fromJson(e)).toList(); } return GasRefillModel( id: parsedJson["id"], userId: parsedJson["uid"], title: parsedJson["title"], - clientName: parsedJson["client"], + clientName: parsedJson["site"]['custName'], status: Lookup.fromJson(parsedJson["status"]), details: details, ); diff --git a/lib/models/lookup.dart b/lib/models/lookup.dart index d0d14a34..9afaf7b7 100644 --- a/lib/models/lookup.dart +++ b/lib/models/lookup.dart @@ -25,14 +25,14 @@ class Lookup { factory Lookup.fromJson(Map parsedJson) { return Lookup( - label: parsedJson["value"], + label: parsedJson["name"], id: parsedJson["id"] is int? ? parsedJson["id"] : int.tryParse(parsedJson["id"] ?? parsedJson["uid"]), ); } factory Lookup.fromIntIdJson(Map parsedJson) { return Lookup( - label: parsedJson["value"], + label: parsedJson["name"], id: parsedJson["id"], ); } diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart index e0286a28..a4836599 100644 --- a/lib/views/pages/device_transfer/update_device_transfer.dart +++ b/lib/views/pages/device_transfer/update_device_transfer.dart @@ -56,7 +56,7 @@ class _UpdateDeviceTransferState extends State { _isLoading = true; setState(() {}); int? status = await _deviceTransferProvider?.updateRequest( - user: UserApiClient().user ?? User(), host: _settingProvider?.host ?? "", requestId: widget.model?.id ?? "", isSender: widget.isSender ?? false, newModel: _formModel, oldModel: widget.model); + user: UserApiClient().user ?? User(), host: _settingProvider?.host ?? "", requestId: widget.model?.id.toString() ?? "", isSender: widget.isSender ?? false, newModel: _formModel, oldModel: widget.model); _isLoading = false; setState(() {}); if (status != null && status >= 200 && status < 300) { diff --git a/lib/views/pages/user/gas_refill/gas_refill_details.dart b/lib/views/pages/user/gas_refill/gas_refill_details.dart index a20ab9a2..97e77702 100644 --- a/lib/views/pages/user/gas_refill/gas_refill_details.dart +++ b/lib/views/pages/user/gas_refill/gas_refill_details.dart @@ -167,7 +167,7 @@ class _GasRefillDetailsState extends State { textScaleFactor: AppStyle.getScaleFactor(context), ), ), - StatusLabel(label: _model.status?.label ?? "", color: AColors.getGasStatusColor(_model.status?.id ?? 0)), + StatusLabel(label: _model.status?.label.toString() ?? "", color: AColors.getGasStatusColor(_model.status?.id ?? 0)), ], ), const SizedBox( diff --git a/lib/views/widgets/status/gas_refill/gas_type.dart b/lib/views/widgets/status/gas_refill/gas_type.dart index 666cb9ec..caeff6a9 100644 --- a/lib/views/widgets/status/gas_refill/gas_type.dart +++ b/lib/views/widgets/status/gas_refill/gas_type.dart @@ -3,6 +3,7 @@ import 'package:provider/provider.dart'; import '../../../../api/user_api_client.dart'; import '../../../../controllers/providers/api/status_drop_down/gas_refill/gas_types_provider.dart'; +import '../../../../controllers/providers/loading_notifier.dart'; import '../../../../controllers/providers/settings/setting_provider.dart'; import '../../../../controllers/providers/user_provider.dart'; import '../../../../models/lookup.dart'; @@ -21,16 +22,14 @@ class GasTypeMenu extends StatelessWidget { @override Widget build(BuildContext context) { - final settingProvider = Provider.of(context); - final userProvider = Provider.of(context); final menuProvider = Provider.of(context); return LoadingManager( - isLoading: menuProvider.isLoading, + isLoading: GasTypesProvider().loading, isFailedLoading: menuProvider.items == null, stateCode: menuProvider.stateCode, onRefresh: () async { menuProvider.reset(); - await menuProvider.getData(user: UserApiClient().user, host: settingProvider.host); + await menuProvider.getData(); }, child: SingleStatusMenu( initialStatus: initialValue, From 5201f5789ee9a0093b06b426a39affc900e147d2 Mon Sep 17 00:00:00 2001 From: nextwo <1234> Date: Sun, 30 Apr 2023 11:10:19 +0300 Subject: [PATCH 4/6] changed to new apis --- lib/api/departments_api_client.dart | 27 +++++ lib/api/device_transfer_api_client.dart | 4 +- lib/api/devices_api_client.dart | 24 ++-- lib/api/hospitals_api_client.dart | 53 +++++++++ lib/controllers/api_routes/urls.dart | 6 +- .../providers/api/departments_provider.dart | 49 ++------ .../api/device_transfer_provider.dart | 1 + .../providers/api/hospitals_provider.dart | 111 ++++-------------- lib/models/hospital.dart | 2 +- .../departments/single_department_picker.dart | 6 +- .../hospital_auto_complete_field.dart | 2 +- .../hospitals/single_hospital_picker.dart | 4 +- 12 files changed, 142 insertions(+), 147 deletions(-) create mode 100644 lib/api/departments_api_client.dart create mode 100644 lib/api/hospitals_api_client.dart diff --git a/lib/api/departments_api_client.dart b/lib/api/departments_api_client.dart new file mode 100644 index 00000000..c0cf283b --- /dev/null +++ b/lib/api/departments_api_client.dart @@ -0,0 +1,27 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; +import 'package:test_sa/api/api_client.dart'; +import 'package:test_sa/controllers/api_routes/urls.dart'; + +import '../models/department.dart'; + +class DepartmentsApiClient{ + + static final DepartmentsApiClient _instance = DepartmentsApiClient._internal(); + + DepartmentsApiClient._internal(); + + factory DepartmentsApiClient() => _instance; + + Future getDepartment() async { + Response response; + response = await ApiClient().postJsonForResponse( + URLs.host1 + URLs.getDepartments, + {}, + isFormData: false + ); + Map listJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); + return listJson['data'].map((department) => Department.fromJson(department)).toList(); + } +} \ No newline at end of file diff --git a/lib/api/device_transfer_api_client.dart b/lib/api/device_transfer_api_client.dart index da6008c2..1b2bfd25 100644 --- a/lib/api/device_transfer_api_client.dart +++ b/lib/api/device_transfer_api_client.dart @@ -16,9 +16,7 @@ class DeviceTransferApiClient { Future> getRequests({required List items, required int pageItemNumber}) async { Map body= { - "uid": "${UserApiClient().user?.id}", - "token": "${UserApiClient().user?.token}", - "page": "${(items.length) ~/ pageItemNumber}", + "pageSize": "${(items.length) ~/ pageItemNumber}", }; final response = await ApiClient().postJsonForResponse( diff --git a/lib/api/devices_api_client.dart b/lib/api/devices_api_client.dart index b77d50a5..8b53111d 100644 --- a/lib/api/devices_api_client.dart +++ b/lib/api/devices_api_client.dart @@ -16,22 +16,31 @@ class DevicesApiClient { /// Fetch devices by [hospitalId] and insert the result into [devices] list Future getEquipment(String hospitalId) async { - final response = await ApiClient().getJsonForResponse(URLs.host1 + URLs.getEquipment, queryParameters: {'client': hospitalId}); - List equipmentListJson = json.decode(utf8.decode(response.bodyBytes)); + + + final response = await ApiClient().postJsonForResponse( + URLs.host1 + URLs.getEquipment, + {'client': hospitalId}, + isFormData: false + ); + + Map equipmentListJson = json.decode(utf8.decode(response.bodyBytes)); + print(equipmentListJson); devices.clear(); - devices.addAll(equipmentListJson.map((device) => Device.fromJson(device)).toList()); + devices.addAll(equipmentListJson['data'] != null ? equipmentListJson['data'].map((device) => Device.fromJson(device)).toList(): []); debugPrint("devices : ${devices.length}"); } /// Returns a list of devices by [hospitalId] and [serialNumber] (or | and) [number] Future> getDevicesList({required String hospitalId, String? serialNumber, String? number}) async { - final response = await ApiClient().getJsonForResponse( + final response = await ApiClient().postJsonForResponse( URLs.host1 + URLs.getEquipment, - queryParameters: { + { 'client': hospitalId, if (serialNumber?.isEmpty == false) 'name': serialNumber, if (number?.isEmpty == false) 'number': number, }, + isFormData: false ); List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); return categoriesListJson.map((device) => Device.fromJson(device)).toList(); @@ -39,12 +48,13 @@ class DevicesApiClient { /// Returns a list of devices by [hospitalId] (and optionally) [serialNumber] Future> getDevicesListBySN({required String hospitalId, required String serialNumber}) async { - final response = await ApiClient().getJsonForResponse( + final response = await ApiClient().postJsonForResponse( URLs.host1 + URLs.getEquipment, - queryParameters: { + { 'client': hospitalId, if (serialNumber.isNotEmpty) 'serial_qr': serialNumber, }, + isFormData: false ); List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); return categoriesListJson.map((device) => Device.fromJson(device)).toList(); diff --git a/lib/api/hospitals_api_client.dart b/lib/api/hospitals_api_client.dart new file mode 100644 index 00000000..9c418409 --- /dev/null +++ b/lib/api/hospitals_api_client.dart @@ -0,0 +1,53 @@ + +import 'dart:convert'; + +import 'package:http/http.dart'; +import 'package:test_sa/controllers/api_routes/urls.dart'; + +import '../models/hospital.dart'; +import 'api_client.dart'; + +class HospitalsApiClient{ + +static final HospitalsApiClient _instance = HospitalsApiClient._internal(); + +HospitalsApiClient._internal(); + +factory HospitalsApiClient() => _instance; + + Future getHospitals({ + required String title, + required int pageSize + }) async { + + Response response = await ApiClient().postJsonForResponse( + URLs.host1 + URLs.getHospitals, + { + "pageSize": pageSize.toString(), + "name": title, + }, + isFormData: false + ); + + Map categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); + print(categoriesListJson); + return categoriesListJson['data'].map((category) => Hospital.fromJson(category)).toList(); + } + + +Future> getHospitalsList({ + required String title, +}) async { + Response response; + response = await ApiClient().postJsonForResponse( + URLs.host1 + URLs.getHospitals, + {"name" : title}, + isFormData: false + ); + + List page = []; + Map categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); + page = categoriesListJson['data'].map((category) => Hospital.fromJson(category)).toList(); + return page; +} +} \ No newline at end of file diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index bbc9e484..30833563 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -7,9 +7,9 @@ class URLs { static const login = "/mobile/MobileAuth/Login"; // post static const register = "/handle/create/user"; // post static const updateProfile = "/update/user/profile"; // post - static const getHospitals = "/handle/return/all/clients"; // get - static const getDepartments = "/handle/return/all/departments"; // get - static const getEquipment = "/handle/return/all/client/equipments"; // get ?client=208051 + static const getHospitals = "/mobile/Customer/GetCustomers"; // get + static const getDepartments = "/mobile/Department/search"; // get + static const getEquipment = "/mobile/Asset/GetAssets"; // get ?client=208051 static const getServiceRequests = "/return/user/calls"; // get static const getPreventiveMaintenanceVisits = "/return/user/calibrations"; // get diff --git a/lib/controllers/providers/api/departments_provider.dart b/lib/controllers/providers/api/departments_provider.dart index 7b54bdb5..c1c9474e 100644 --- a/lib/controllers/providers/api/departments_provider.dart +++ b/lib/controllers/providers/api/departments_provider.dart @@ -2,14 +2,16 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:http/http.dart'; +import 'package:test_sa/api/departments_api_client.dart'; import '../../../models/department.dart'; import '../../api_routes/urls.dart'; +import '../loading_notifier.dart'; -class DepartmentsProvider extends ChangeNotifier { +class DepartmentsProvider extends LoadingNotifier { //reset provider data void reset() { - departments = null; + departments.clear(); stateCode = null; } @@ -20,44 +22,17 @@ class DepartmentsProvider extends ChangeNotifier { // contain user data // when user not login or register _user = null - List? departments; + List departments=[]; - // when categories in-process _loading = true - // done _loading = true - // failed _loading = false - bool? isLoading; + Future getDepartment() async { - /// return -2 if request in progress - /// return -1 if error happen when sending request - /// return state code if request complete may be 200, 404 or 403 - /// for more details check http state manager - /// lib\controllers\http_status_manger\http_status_manger.dart - Future getDepartment(String host) async { - if (isLoading == true) { - return -2; - } - isLoading = true; - notifyListeners(); - Response response; - try { - response = await get( - Uri.parse(host + URLs.getDepartments), - headers: {"Content-Type": "application/json; charset=utf-8"}, - ); - } catch (error) { - isLoading = false; - stateCode = -1; + waitApiRequest(() async { + departments.addAll(await DepartmentsApiClient().getDepartment()); notifyListeners(); - return -1; - } - stateCode = response.statusCode; - if (response.statusCode >= 200 && response.statusCode < 300) { - // client's request was successfully received - List listJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); - departments = listJson.map((department) => Department.fromJson(department)).toList(); + }, + onSuccess: (){ + stateCode=200; } - isLoading = false; - notifyListeners(); - return response.statusCode; + ); } } diff --git a/lib/controllers/providers/api/device_transfer_provider.dart b/lib/controllers/providers/api/device_transfer_provider.dart index 0996d0d4..330d207d 100644 --- a/lib/controllers/providers/api/device_transfer_provider.dart +++ b/lib/controllers/providers/api/device_transfer_provider.dart @@ -35,6 +35,7 @@ class DeviceTransferProvider extends LoadingNotifier { waitApiRequest(() async { items.clear(); items.addAll(await DeviceTransferApiClient().getRequests(items: items, pageItemNumber: pageItemNumber)); + print(items); notifyListeners(); if (items.length == pageItemNumber) { nextPage = true; diff --git a/lib/controllers/providers/api/hospitals_provider.dart b/lib/controllers/providers/api/hospitals_provider.dart index f0403dfa..db9abfef 100644 --- a/lib/controllers/providers/api/hospitals_provider.dart +++ b/lib/controllers/providers/api/hospitals_provider.dart @@ -3,126 +3,59 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart'; +import 'package:test_sa/api/hospitals_api_client.dart'; +import 'package:test_sa/controllers/providers/loading_notifier.dart'; import '../../../models/hospital.dart'; import '../../../models/user.dart'; import '../../api_routes/urls.dart'; -class HospitalsProvider extends ChangeNotifier { +class HospitalsProvider extends LoadingNotifier { // number of items call in each request final pageItemNumber = 50; //reset provider data void reset() { - _hospitals = null; + _hospitals.clear(); _stateCode = null; } - // state code of current request to defied error message - // like 400 customer request failed - // 500 service not available int? _stateCode; int? get stateCode => _stateCode; - // true if there is next page in product list and false if not - bool _nextPage = true; - - bool get nextPage => _nextPage; // contain user data // when user not login or register _user = null - List? _hospitals; - - List? get hospitals => _hospitals; + List _hospitals=[]; - // when categories in-process _loading = true - // done _loading = true - // failed _loading = false - bool? _loading; + List get hospitals => _hospitals; - bool? get isLoading => _loading; - - set isLoading(bool? isLoading) { - _loading = isLoading; - notifyListeners(); - } - /// return -2 if request in progress - /// return -1 if error happen when sending request - /// return state code if request complete may be 200, 404 or 403 - /// for more details check http state manager - /// lib\controllers\http_status_manger\http_status_manger.dart - Future getHospitals({ - required String host, - required User user, + Future getHospitals({ required String? title, }) async { - if (_loading == true) { - return -2; - } - _loading = true; - notifyListeners(); - Response response; - try { - response = await get( - Uri.parse( - "${host + URLs.getHospitals}?page=${(_hospitals?.length ?? 0) ~/ pageItemNumber}${title == null || title.isEmpty ? "" : "&name=$title"}", - ), - headers: {"Content-Type": "application/json; charset=utf-8"}, - ); - _stateCode = response.statusCode; - if (response.statusCode >= 200 && response.statusCode < 300) { - // client's request was successfully received - List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); - List page = categoriesListJson.map((category) => Hospital.fromJson(category)).toList(); - if (hospitals == null) _hospitals = []; - - _hospitals?.addAll(page); - if (page.length >= pageItemNumber) { - _nextPage = true; - } else { - _nextPage = false; - } - } - _loading = false; - notifyListeners(); - return response.statusCode; - } catch (error) { - _loading = false; - _stateCode = -1; - notifyListeners(); - return -1; + waitApiRequest(() async { + _hospitals = []; + _hospitals.addAll(await HospitalsApiClient().getHospitals(title: title ?? "", pageSize: _hospitals.length ~/ pageItemNumber)); + notifyListeners(); + }, + onSuccess: (){ + _stateCode = 200; } + ); } Future> getHospitalsList({ - required String host, - required User user, required String title, }) async { - Response response; - try { - response = await get( - Uri.parse( - host + URLs.getHospitals + (title.isEmpty ? "" : "?name=$title"), - ), - headers: {"Content-Type": "application/json; charset=utf-8"}, - ); - _stateCode = response.statusCode; - - List page = []; - if (response.statusCode >= 200 && response.statusCode < 300) { - // client's request was successfully received - List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); - page = categoriesListJson.map((category) => Hospital.fromJson(category)).toList(); - } - return page; - } catch (error) { - _loading = false; - _stateCode = -1; - notifyListeners(); - return []; + waitApiRequest((){ + return HospitalsApiClient().getHospitalsList(title: title); + }, + onSuccess: (){ + _stateCode=200; } + ); + return []; } } diff --git a/lib/models/hospital.dart b/lib/models/hospital.dart index a41d8dd2..bf1ecfe5 100644 --- a/lib/models/hospital.dart +++ b/lib/models/hospital.dart @@ -1,5 +1,5 @@ class Hospital { - String? id; + int? id; String? name; Hospital({ diff --git a/lib/views/widgets/departments/single_department_picker.dart b/lib/views/widgets/departments/single_department_picker.dart index a656b647..96901364 100644 --- a/lib/views/widgets/departments/single_department_picker.dart +++ b/lib/views/widgets/departments/single_department_picker.dart @@ -35,14 +35,12 @@ class _SingleDepartmentPickerState extends State { return Scaffold( resizeToAvoidBottomInset: false, body: LoadingManager( - isLoading: _departmentsProvider?.isLoading, + isLoading: _departmentsProvider?.loading, stateCode: _departmentsProvider?.stateCode, isFailedLoading: _departmentsProvider?.departments == null, onRefresh: () async { _departmentsProvider?.reset(); - await _departmentsProvider?.getDepartment( - _settingProvider?.host ?? "", - ); + await _departmentsProvider?.getDepartment(); }, child: Column( children: [ diff --git a/lib/views/widgets/hospitals/hospital_auto_complete_field.dart b/lib/views/widgets/hospitals/hospital_auto_complete_field.dart index f16b8344..b8c472c9 100644 --- a/lib/views/widgets/hospitals/hospital_auto_complete_field.dart +++ b/lib/views/widgets/hospitals/hospital_auto_complete_field.dart @@ -73,7 +73,7 @@ class _HospitalAutoCompleteFieldState extends State { widget.onSearch!(_controller.text); }), suggestionsCallback: (vale) async { - return await HospitalsProvider().getHospitalsList(host: _settingProvider?.host ?? "", title: vale, user: User()); + return await HospitalsProvider().getHospitalsList(title: vale); }, itemBuilder: (context, hospital) { return HospitalItem( diff --git a/lib/views/widgets/hospitals/single_hospital_picker.dart b/lib/views/widgets/hospitals/single_hospital_picker.dart index 9e6e512f..ed2ecc0b 100644 --- a/lib/views/widgets/hospitals/single_hospital_picker.dart +++ b/lib/views/widgets/hospitals/single_hospital_picker.dart @@ -36,12 +36,12 @@ class _SingleHospitalPickerState extends State { return Scaffold( resizeToAvoidBottomInset: false, body: LoadingManager( - isLoading: _hospitalsProvider?.isLoading, + isLoading: _hospitalsProvider?.loading, stateCode: _hospitalsProvider?.stateCode, isFailedLoading: _hospitalsProvider?.hospitals == null, onRefresh: () async { _hospitalsProvider?.reset(); - await _hospitalsProvider?.getHospitals(host: _settingProvider?.host ?? "", user: User(), title: ''); + await _hospitalsProvider?.getHospitals(title: ''); }, child: Column( children: [ From d2cf147acdf63c33265feff0f2f1d5d1ddeb5c50 Mon Sep 17 00:00:00 2001 From: nextwo <1234> Date: Tue, 2 May 2023 14:55:51 +0300 Subject: [PATCH 5/6] changed to new apis --- lib/api/api_client.dart | 7 ++- lib/api/gas_refill_api_client.dart | 53 +++++++++++++++---- lib/controllers/api_routes/urls.dart | 3 +- .../gas_cylinder_size_provider.dart | 6 ++- .../user/gas_refill/request_gas_refill.dart | 23 ++++---- .../gas_refill_update_details_item.dart | 2 +- 6 files changed, 69 insertions(+), 25 deletions(-) diff --git a/lib/api/api_client.dart b/lib/api/api_client.dart index 1ac91bfa..3d206471 100644 --- a/lib/api/api_client.dart +++ b/lib/api/api_client.dart @@ -98,7 +98,7 @@ class ApiClient { } Future postJsonForResponse(String url, T jsonObject, - {String? token, Map? queryParameters, Map? headers, int retryTimes = 0, bool isFormData = true}) async { + {String? token, Map? queryParameters, Map? headers, int retryTimes = 0, bool isFormData = false}) async { int currentRetryTime = retryTimes; String? requestBody; late Map stringObj; @@ -111,6 +111,11 @@ class ApiClient { } } + if(!kReleaseMode) + { print("url:$url"); + print("requestBody:$requestBody"); + } + if (isFormData) { headers = {'Content-Type': 'application/x-www-form-urlencoded'}; stringObj = ((jsonObject ?? {}) as Map).map((key, value) => MapEntry(key, value?.toString() ?? "")); diff --git a/lib/api/gas_refill_api_client.dart b/lib/api/gas_refill_api_client.dart index d3e27343..87d6c631 100644 --- a/lib/api/gas_refill_api_client.dart +++ b/lib/api/gas_refill_api_client.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:http/http.dart'; import 'package:test_sa/api/user_api_client.dart'; import '../controllers/api_routes/urls.dart'; @@ -37,20 +38,45 @@ class GasRefillApiClient { Future createModel({ required GasRefillModel model, }) async { + + Map body = { - "uid": UserApiClient().user?.id.toString(), - "token": UserApiClient().user?.token ?? "", - "title": model.title ?? "", - "status": "0", //model.status.value.toString(), + "gazRefillNo": await generateGazRefillNo(), + "assignedEmployee": { + "id": UserApiClient().user?.id.toString(), + "name": UserApiClient().user?.username.toString() + }, + "status": { + "id": 0, + "name": "", + "value": 0 + }, }; - body["gazRefillDetails"] = jsonEncode(model.details + body["gazRefillDetails"] = model.details ?.map((model) => { - "gasType": model.type?.id.toString(), - "cylinderSize": model.cylinderSize?.id.toString(), - "requestedQty": model.requestedQuantity.toString(), + "gasType": { + "id": model.type?.id, + "name": model.type?.label.toString(), + "value": model.type?.id + }, + "cylinderType": { + "id": 0, + "name": "", + "value": 0 + }, + "cylinderSize": { + "id": model.cylinderSize?.id, + "name": model.cylinderSize?.label.toString(), + "value": model.cylinderSize?.id, + }, + "requestedQty": model.requestedQuantity, + "deliverdQty": 0 + }) - .toList()); + .toList(); + + print(body); final response = await ApiClient().postJsonForResponse( "${URLs.host1}${URLs.requestGasRefill}", @@ -85,4 +111,13 @@ class GasRefillApiClient { oldModel?.fromGasRefillModel(newModel); } + + + Future generateGazRefillNo() async { + + final reponse = await ApiClient().getJsonForResponse("${URLs.host1}${URLs.generateGazRefillNo}"); + var data = json.decode(reponse.body); + return data['data']; + + } } diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index fa4ed214..8795ecb9 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -2,7 +2,7 @@ class URLs{ URLs._(); static const host2 = "http://194.163.164.213/atoms/api"; // static const host1 = "https://atoms.hmg.com/api"; // production url - static const host1 = "https://atomsdev.hmg.com/api"; // uat url + static const host1 = "https://atomsuat.hmg.com"; // uat url // API Routes static const login = "/mobile/MobileAuth/Login"; // post @@ -48,6 +48,7 @@ class URLs{ static const requestGasRefill = "/mobile/GazRefill/AddGazRefill"; // get static const updateGasRefill = "/mobile/GazRefill/UpdateGazRefill"; // get static const getGasRefill = "/mobile/GazRefill/GetGazRefills"; // get + static const generateGazRefillNo= "/mobile/GazRefill/GenerateGazRefillNumber"; //device transfer static const requestDeviceTransfer = "/mobile/AssetTransfer/AddAssetTransfer"; // get diff --git a/lib/controllers/providers/api/status_drop_down/gas_refill/gas_cylinder_size_provider.dart b/lib/controllers/providers/api/status_drop_down/gas_refill/gas_cylinder_size_provider.dart index 6a1c53f9..cc767b86 100644 --- a/lib/controllers/providers/api/status_drop_down/gas_refill/gas_cylinder_size_provider.dart +++ b/lib/controllers/providers/api/status_drop_down/gas_refill/gas_cylinder_size_provider.dart @@ -57,14 +57,16 @@ class GasCylinderSizesProvider extends ChangeNotifier { notifyListeners(); Response response; try { + response = await get( Uri.parse((host ?? '') + URLs.getGasCylinderSize), ); _stateCode = response.statusCode; if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received - List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); - _items = categoriesListJson.map((item) => Lookup.fromJson(item)).toList(); + + var categoriesListJson = json.decode(response.body); + _items = categoriesListJson['data'].map((item) => Lookup.fromJson(item)).toList(); } _loading = false; notifyListeners(); diff --git a/lib/views/pages/user/gas_refill/request_gas_refill.dart b/lib/views/pages/user/gas_refill/request_gas_refill.dart index a0d2aed0..3ea104b6 100644 --- a/lib/views/pages/user/gas_refill/request_gas_refill.dart +++ b/lib/views/pages/user/gas_refill/request_gas_refill.dart @@ -18,6 +18,7 @@ import '../../../widgets/app_text_form_field.dart'; import '../../../widgets/buttons/app_button.dart'; import '../../../widgets/gas_refill/gas_refill_create_details_item.dart'; import '../../../widgets/loaders/loading_manager.dart'; +import '../../../widgets/status/gas_refill/gas_cylinder_size.dart'; import '../../../widgets/status/gas_refill/gas_type.dart'; import '../../../widgets/titles/app_sub_title.dart'; @@ -147,17 +148,17 @@ class _RequestGasRefillState extends State { }, ), - // const SizedBox(height: 8,), - // const ASubTitle("Cylinder Size"), - // if(_validate && _currentDetails.cylinderSize == null) - // ASubTitle(_subtitle.requiredWord,color: Colors.red,), - // const SizedBox(height: 4,), - // GasCylinderSizeMenu( - // initialValue: _currentDetails.cylinderSize, - // onSelect: (status){ - // _currentDetails.cylinderSize = status; - // }, - // ), + const SizedBox(height: 8,), + const ASubTitle("Cylinder Size"), + if(_validate && _currentDetails.cylinderSize == null) + ASubTitle(_subtitle?.requiredWord??"",color: Colors.red,), + const SizedBox(height: 4,), + GasCylinderSizeMenu( + initialValue: _currentDetails.cylinderSize, + onSelect: (status){ + _currentDetails.cylinderSize = status; + }, + ), const SizedBox( height: 8, ), diff --git a/lib/views/widgets/gas_refill/gas_refill_update_details_item.dart b/lib/views/widgets/gas_refill/gas_refill_update_details_item.dart index 699ffd9b..2f9104e4 100644 --- a/lib/views/widgets/gas_refill/gas_refill_update_details_item.dart +++ b/lib/views/widgets/gas_refill/gas_refill_update_details_item.dart @@ -48,7 +48,7 @@ class GasRefillUpdateDetailsItem extends StatelessWidget { initialValue: (details.deliveredQuantity ?? "").toString(), textAlign: TextAlign.center, style: Theme.of(context).textTheme.subtitle1, - validator: (value) => Validator.isNumeric(value!) ? "" : "allow numbers only", + validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only", textInputType: TextInputType.number, onSaved: (value) { details.deliveredQuantity = int.tryParse(value!); From 6c792cbced89ef6c8909f35739e771ac6924d6de Mon Sep 17 00:00:00 2001 From: nextwo <1234> Date: Tue, 2 May 2023 15:37:04 +0300 Subject: [PATCH 6/6] changed to new apis --- lib/api/gas_refill_api_client.dart | 48 ++++++++++++++++++++++-------- lib/models/device/device.dart | 2 +- 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/lib/api/gas_refill_api_client.dart b/lib/api/gas_refill_api_client.dart index 87d6c631..d4447679 100644 --- a/lib/api/gas_refill_api_client.dart +++ b/lib/api/gas_refill_api_client.dart @@ -91,23 +91,47 @@ class GasRefillApiClient { required GasRefillModel? oldModel, required GasRefillModel newModel, }) async { + Map body = { - "uid": UserApiClient().user?.id.toString(), - "token": UserApiClient().user?.token, - "title": newModel.title, - "status": newModel.status?.id.toString(), + "id": oldModel?.id, + "gazRefillNo": await generateGazRefillNo(), + "assignedEmployee": { + "id": UserApiClient().user?.id.toString(), + "name": UserApiClient().user?.username.toString() + }, + "status": { + "id": 0, + "name": "", + "value": 0 + }, }; - body["gazRefillDetails"] = jsonEncode(newModel.details + body["gazRefillDetails"] = newModel.details ?.map((model) => { - "gasType": model.type?.id.toString(), - "cylinderSize": model.cylinderSize?.id.toString(), - "requestedQty": model.requestedQuantity.toString(), - "deliverdQty": model.deliveredQuantity.toString(), - }) - .toList()); + "gasType": { + "id": model.type?.id, + "name": model.type?.label.toString(), + "value": model.type?.id + }, + "cylinderType": { + "id": 0, + "name": "", + "value": 0 + }, + "cylinderSize": { + "id": model.cylinderSize?.id, + "name": model.cylinderSize?.label.toString(), + "value": model.cylinderSize?.id, + }, + "requestedQty": model.requestedQuantity, + "deliverdQty": 0 + + }) + .toList(); + + - final reponse = await ApiClient().postJsonForResponse("${URLs.host1}${URLs.updateGasRefill}/${newModel.id}", body); + final reponse = await ApiClient().putJsonForResponse("${URLs.host1}${URLs.updateGasRefill}/${newModel.id}", body); oldModel?.fromGasRefillModel(newModel); } diff --git a/lib/models/device/device.dart b/lib/models/device/device.dart index e266d366..db628c73 100644 --- a/lib/models/device/device.dart +++ b/lib/models/device/device.dart @@ -27,7 +27,7 @@ class Device { factory Device.fromJson(Map parsedJson) { return Device( - id: parsedJson["nid"] ?? parsedJson["id"], + id: parsedJson["nid"] ?? parsedJson["id"].toString(), serialNumber: parsedJson["sn"] ?? parsedJson["value"], number: parsedJson["asset_no"], brand: parsedJson["brand"] as String?,