Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
Tour Travel Agency AGR
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dio Maulana
Tour Travel Agency AGR
Commits
49386a19
Commit
49386a19
authored
Jun 12, 2023
by
Dio Maulana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add easy loading before hit api
parent
96c36301
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
145 additions
and
46 deletions
+145
-46
all_api.dart
lib/api/all_api.dart
+39
-0
login.dart
lib/page/login/login.dart
+8
-1
register.dart
lib/page/register/register.dart
+62
-44
routes.dart
lib/resource/routes.dart
+35
-1
strings.dart
lib/resource/strings.dart
+1
-0
No files found.
lib/api/all_api.dart
View file @
49386a19
...
@@ -3,6 +3,7 @@ import 'dart:convert';
...
@@ -3,6 +3,7 @@ import 'dart:convert';
import
'package:tour_travel_agr/api/response_api.dart'
;
import
'package:tour_travel_agr/api/response_api.dart'
;
import
'package:tour_travel_agr/helper/prefs.dart'
;
import
'package:tour_travel_agr/helper/prefs.dart'
;
import
'package:tour_travel_agr/main.dart'
;
import
'package:tour_travel_agr/main.dart'
;
import
'package:tour_travel_agr/resource/routes.dart'
;
import
'package:tour_travel_agr/resource/strings.dart'
;
import
'package:tour_travel_agr/resource/strings.dart'
;
class
Api
{
class
Api
{
...
@@ -84,9 +85,16 @@ class Api {
...
@@ -84,9 +85,16 @@ class Api {
static
Future
<
ApiResponse
>
forgotPassword
(
String
phone
)
async
{
static
Future
<
ApiResponse
>
forgotPassword
(
String
phone
)
async
{
String
apiUrl
=
"
$baseUrl${endPoint}
forgot_password"
;
String
apiUrl
=
"
$baseUrl${endPoint}
forgot_password"
;
String
baseUrlToReset
=
''
;
baseUrlToReset
+=
"
${Uri.base.scheme}
://
${Uri.base.host}
"
;
if
(
Uri
.
base
.
port
!=
80
)
{
baseUrlToReset
+=
":
${Uri.base.port}
"
;
}
baseUrlToReset
+=
"
${Routes.resetPasswordRoute}
/"
;
try
{
try
{
Map
<
String
,
dynamic
>
data
=
{
Map
<
String
,
dynamic
>
data
=
{
"mobile_phone"
:
phone
,
"mobile_phone"
:
phone
,
"base_url"
:
baseUrlToReset
,
};
};
String
bodies
=
jsonEncode
(
data
);
String
bodies
=
jsonEncode
(
data
);
dynamic
jsonObject
=
httpRequest
(
dynamic
jsonObject
=
httpRequest
(
...
@@ -179,4 +187,35 @@ class Api {
...
@@ -179,4 +187,35 @@ class Api {
return
ApiResponse
(
error:
true
,
msg:
Strings
.
serverError
);
return
ApiResponse
(
error:
true
,
msg:
Strings
.
serverError
);
}
}
}
}
static
Future
<
ApiResponse
>
dataForgotPassword
(
String
idPath
)
async
{
String
apiUrl
=
"
$baseUrl${endPoint}
data_forgot_password"
;
try
{
Map
<
String
,
dynamic
>
data
=
{
"param_id"
:
idPath
,
};
String
bodies
=
jsonEncode
(
data
);
dynamic
jsonObject
=
await
httpRequest
(
typePost
,
apiUrl
,
'dataForgotPassword'
,
bodies:
bodies
,
);
if
(
jsonObject
==
false
)
{
return
ApiResponse
(
error:
true
,
msg:
Strings
.
cantConnectToServer
);
}
else
{
if
(
jsonObject
[
'status'
]
==
'ok'
)
{
return
ApiResponse
(
error:
false
,
msg:
"Success"
);
}
else
{
return
ApiResponse
(
error:
true
,
msg:
jsonObject
[
'msg'
],
);
}
}
}
catch
(
e
)
{
return
ApiResponse
(
error:
true
,
msg:
Strings
.
serverError
);
}
}
}
}
lib/page/login/login.dart
View file @
49386a19
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_easyloading/flutter_easyloading.dart'
;
import
'package:tour_travel_agr/api/all_api.dart'
;
import
'package:tour_travel_agr/api/all_api.dart'
;
import
'package:tour_travel_agr/helper/components_widget/password_input.dart'
;
import
'package:tour_travel_agr/helper/components_widget/password_input.dart'
;
import
'package:tour_travel_agr/helper/components_widget/widget_button.dart'
;
import
'package:tour_travel_agr/helper/components_widget/widget_button.dart'
;
...
@@ -9,6 +10,7 @@ import 'package:tour_travel_agr/resource/assets.dart';
...
@@ -9,6 +10,7 @@ import 'package:tour_travel_agr/resource/assets.dart';
import
'package:tour_travel_agr/resource/colors.dart'
;
import
'package:tour_travel_agr/resource/colors.dart'
;
import
'package:tour_travel_agr/resource/routes.dart'
;
import
'package:tour_travel_agr/resource/routes.dart'
;
import
'package:tour_travel_agr/resource/size.dart'
;
import
'package:tour_travel_agr/resource/size.dart'
;
import
'package:tour_travel_agr/resource/strings.dart'
;
import
'package:tour_travel_agr/resource/style.dart'
;
import
'package:tour_travel_agr/resource/style.dart'
;
class
LoginView
extends
StatelessWidget
{
class
LoginView
extends
StatelessWidget
{
...
@@ -157,12 +159,17 @@ class _BodyWidgetState extends State<BodyWidget> {
...
@@ -157,12 +159,17 @@ class _BodyWidgetState extends State<BodyWidget> {
colorButton:
buttonLoginActive
colorButton:
buttonLoginActive
?
ColorManager
.
primary
?
ColorManager
.
primary
:
Colors
.
grey
,
:
Colors
.
grey
,
onTap:
()
{
onTap:
()
async
{
if
(
buttonLoginActive
)
{
if
(
buttonLoginActive
)
{
await
EasyLoading
.
show
(
status:
Strings
.
pleaseWait
,
maskType:
EasyLoadingMaskType
.
none
,
);
Api
.
login
(
Api
.
login
(
widget
.
whatsappController
.
text
,
widget
.
whatsappController
.
text
,
widget
.
passwordController
.
text
,
widget
.
passwordController
.
text
,
).
then
((
apiResponse
)
{
).
then
((
apiResponse
)
{
EasyLoading
.
dismiss
();
if
(
apiResponse
.
error
)
{
if
(
apiResponse
.
error
)
{
modalDialogGlobal
(
modalDialogGlobal
(
context:
context
,
context:
context
,
...
...
lib/page/register/register.dart
View file @
49386a19
// ignore_for_file: sized_box_for_whitespace
// ignore_for_file: sized_box_for_whitespace
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_easyloading/flutter_easyloading.dart'
;
import
'package:tour_travel_agr/api/all_api.dart'
;
import
'package:tour_travel_agr/api/all_api.dart'
;
import
'package:tour_travel_agr/helper/argument_route/verification_otp.dart'
;
import
'package:tour_travel_agr/helper/argument_route/verification_otp.dart'
;
import
'package:tour_travel_agr/helper/components_widget/custom_appbar.dart'
;
import
'package:tour_travel_agr/helper/components_widget/custom_appbar.dart'
;
...
@@ -12,6 +13,7 @@ import 'package:tour_travel_agr/helper/widget_responsive.dart';
...
@@ -12,6 +13,7 @@ import 'package:tour_travel_agr/helper/widget_responsive.dart';
import
'package:tour_travel_agr/resource/colors.dart'
;
import
'package:tour_travel_agr/resource/colors.dart'
;
import
'package:tour_travel_agr/resource/routes.dart'
;
import
'package:tour_travel_agr/resource/routes.dart'
;
import
'package:tour_travel_agr/resource/size.dart'
;
import
'package:tour_travel_agr/resource/size.dart'
;
import
'package:tour_travel_agr/resource/strings.dart'
;
import
'package:tour_travel_agr/resource/style.dart'
;
import
'package:tour_travel_agr/resource/style.dart'
;
class
RegisterView
extends
StatefulWidget
{
class
RegisterView
extends
StatefulWidget
{
...
@@ -152,44 +154,59 @@ class _RegisterViewState extends State<RegisterView> {
...
@@ -152,44 +154,59 @@ class _RegisterViewState extends State<RegisterView> {
colorButton:
buttonRregisterActive
colorButton:
buttonRregisterActive
?
ColorManager
.
primary
?
ColorManager
.
primary
:
Colors
.
grey
,
:
Colors
.
grey
,
onTap:
()
{
onTap:
()
async
{
if
(
buttonRregisterActive
)
{
if
(
buttonRregisterActive
)
{
// if (passwordController.text !=
if
(
nameController
.
text
.
isEmpty
||
// confirmPasswordController.text) {
nikController
.
text
.
isEmpty
||
// modalDialogGlobal(
noHpController
.
text
.
isEmpty
||
// context: context,
passwordController
.
text
.
isEmpty
)
{
// size: MediaQuery.of(context).size,
modalDialogGlobal
(
// title: "Gagal",
context:
context
,
// contentBody: "Password tidak sama",
size:
MediaQuery
.
of
(
context
).
size
,
// buttonText: "Ok",
title:
"Informasi"
,
// tapButton: () => Navigator.pop(context),
contentBody:
"Semua field wajib diisi"
,
// );
buttonText:
"Ok"
,
// }
tapButton:
()
=>
Navigator
.
pop
(
context
),
// Api.register(
);
// nameController.text,
return
;
// nikController.text,
}
// noHpController.text,
if
(
passwordController
.
text
!=
// passwordController.text,
confirmPasswordController
.
text
)
{
// confirmPasswordController.text,
// ignore: use_build_context_synchronously
// ).then((apiResponse) {
modalDialogGlobal
(
// if (apiResponse.error) {
context:
context
,
// modalDialogGlobal(
size:
MediaQuery
.
of
(
context
).
size
,
// context: context,
title:
"Gagal"
,
// size: MediaQuery.of(context).size,
contentBody:
"Password tidak sama"
,
// title: "Gagal",
buttonText:
"Ok"
,
// contentBody: apiResponse.msg,
tapButton:
()
=>
Navigator
.
pop
(
context
),
// buttonText: "Ok",
);
// tapButton: () => Navigator.pop(context),
return
;
// );
}
// return;
// }
// Navigator.pushNamed(
await
EasyLoading
.
show
(
// context,
status:
Strings
.
pleaseWait
,
// Routes.verificationRoute,
maskType:
EasyLoadingMaskType
.
none
,
// arguments: apiResponse.data['register_id'],
);
// );
Api
.
register
(
// });
nameController
.
text
,
nikController
.
text
,
noHpController
.
text
,
passwordController
.
text
,
confirmPasswordController
.
text
,
).
then
((
apiResponse
)
{
EasyLoading
.
dismiss
();
if
(
apiResponse
.
error
)
{
modalDialogGlobal
(
context:
context
,
size:
MediaQuery
.
of
(
context
).
size
,
title:
"Gagal"
,
contentBody:
apiResponse
.
msg
,
buttonText:
"Ok"
,
tapButton:
()
=>
Navigator
.
pop
(
context
),
);
return
;
}
Navigator
.
pushNamed
(
Navigator
.
pushNamed
(
context
,
context
,
...
@@ -199,6 +216,7 @@ class _RegisterViewState extends State<RegisterView> {
...
@@ -199,6 +216,7 @@ class _RegisterViewState extends State<RegisterView> {
phone:
noHpController
.
text
,
phone:
noHpController
.
text
,
),
),
);
);
});
}
}
},
},
),
),
...
...
lib/resource/routes.dart
View file @
49386a19
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter/services.dart'
;
import
'package:flutter/services.dart'
;
import
'package:tour_travel_agr/helper/argument_route/error_arguments.dart'
;
import
'package:tour_travel_agr/helper/argument_route/verification_otp.dart'
;
import
'package:tour_travel_agr/helper/argument_route/verification_otp.dart'
;
import
'package:tour_travel_agr/main.dart'
;
import
'package:tour_travel_agr/main.dart'
;
import
'package:tour_travel_agr/page/error.dart'
;
import
'package:tour_travel_agr/page/history/history.dart'
;
import
'package:tour_travel_agr/page/history/history.dart'
;
import
'package:tour_travel_agr/page/profile/change_password/change_password.dart'
;
import
'package:tour_travel_agr/page/profile/change_password/change_password.dart'
;
import
'package:tour_travel_agr/page/forgot_password/forgot_password.dart'
;
import
'package:tour_travel_agr/page/forgot_password/forgot_password.dart'
;
...
@@ -15,6 +17,7 @@ import 'package:tour_travel_agr/page/reimbursement/reimbursement.dart';
...
@@ -15,6 +17,7 @@ import 'package:tour_travel_agr/page/reimbursement/reimbursement.dart';
import
'package:tour_travel_agr/page/reset_password/reset_password.dart'
;
import
'package:tour_travel_agr/page/reset_password/reset_password.dart'
;
import
'package:tour_travel_agr/page/reset_password/reset_success.dart'
;
import
'package:tour_travel_agr/page/reset_password/reset_success.dart'
;
import
'package:tour_travel_agr/page/splash/splash.dart'
;
import
'package:tour_travel_agr/page/splash/splash.dart'
;
import
'package:tour_travel_agr/resource/strings.dart'
;
class
Routes
{
class
Routes
{
static
const
String
splashRoute
=
"/splash"
;
static
const
String
splashRoute
=
"/splash"
;
...
@@ -30,6 +33,8 @@ class Routes {
...
@@ -30,6 +33,8 @@ class Routes {
static
const
String
reimburseRoute
=
"/reimbursement"
;
static
const
String
reimburseRoute
=
"/reimbursement"
;
static
const
String
historyRoute
=
"/history"
;
static
const
String
historyRoute
=
"/history"
;
static
const
String
resetPasswordSuccess
=
"/reset-success"
;
static
const
String
resetPasswordSuccess
=
"/reset-success"
;
static
const
String
errorRoute
=
"/error"
;
static
const
String
notFoundRoute
=
"/404"
;
}
}
class
RouteGenerator
{
class
RouteGenerator
{
...
@@ -53,6 +58,16 @@ class RouteGenerator {
...
@@ -53,6 +58,16 @@ class RouteGenerator {
nameRoute:
Routes
.
verificationRoute
,
nameRoute:
Routes
.
verificationRoute
,
routeSettings:
routeSettings
,
routeSettings:
routeSettings
,
);
);
}
else
if
(
routeSettings
.
name
==
Routes
.
errorRoute
)
{
ErrorWidgetArguments
args
=
routeSettings
.
arguments
as
ErrorWidgetArguments
;
return
pageRouteCustom
(
ErrorWidgetView
(
messageError:
args
.
errorMessage
,
),
nameRoute:
Routes
.
errorRoute
,
routeSettings:
routeSettings
,
);
}
else
if
(
routeSettings
.
name
==
Routes
.
forgotPasswordRoute
)
{
}
else
if
(
routeSettings
.
name
==
Routes
.
forgotPasswordRoute
)
{
return
pageRouteCustom
(
const
ForgotPasswordView
(),
return
pageRouteCustom
(
const
ForgotPasswordView
(),
nameRoute:
Routes
.
forgotPasswordRoute
);
nameRoute:
Routes
.
forgotPasswordRoute
);
...
@@ -89,7 +104,13 @@ class RouteGenerator {
...
@@ -89,7 +104,13 @@ class RouteGenerator {
return
pageRouteCustom
(
const
ResetPasswrodSuccessView
(),
return
pageRouteCustom
(
const
ResetPasswrodSuccessView
(),
nameRoute:
Routes
.
resetPasswordSuccess
);
nameRoute:
Routes
.
resetPasswordSuccess
);
}
else
{
}
else
{
return
unDefinedRoute
();
return
pageRouteCustom
(
ErrorWidgetView
(
messageError:
Strings
.
notFoundPage
,
),
nameRoute:
Routes
.
notFoundRoute
,
routeSettings:
routeSettings
,
);
}
}
}
}
...
@@ -119,6 +140,19 @@ class RouteGenerator {
...
@@ -119,6 +140,19 @@ class RouteGenerator {
settings:
RouteSettings
(
name:
nameRoute
.
replaceFirst
(
"/"
,
""
)),
settings:
RouteSettings
(
name:
nameRoute
.
replaceFirst
(
"/"
,
""
)),
);
);
}
}
if
(
nameRoute
==
Routes
.
errorRoute
)
{
ErrorWidgetArguments
args
=
routeSettings
!.
arguments
as
ErrorWidgetArguments
;
return
PageRouteBuilder
(
pageBuilder:
(
context
,
a
,
b
)
=>
ErrorWidgetView
(
messageError:
args
.
errorMessage
,
),
transitionDuration:
Duration
.
zero
,
reverseTransitionDuration:
Duration
.
zero
,
settings:
RouteSettings
(
name:
nameRoute
.
replaceFirst
(
"/"
,
""
)),
);
}
return
PageRouteBuilder
(
return
PageRouteBuilder
(
pageBuilder:
(
context
,
a
,
b
)
=>
target
,
pageBuilder:
(
context
,
a
,
b
)
=>
target
,
transitionDuration:
Duration
.
zero
,
transitionDuration:
Duration
.
zero
,
...
...
lib/resource/strings.dart
View file @
49386a19
...
@@ -13,4 +13,5 @@ class Strings {
...
@@ -13,4 +13,5 @@ class Strings {
static
String
serverError
=
"Something wrong with our server, refresh page"
;
static
String
serverError
=
"Something wrong with our server, refresh page"
;
static
String
succesGetData
=
"Success get data"
;
static
String
succesGetData
=
"Success get data"
;
static
String
pleaseWait
=
"Please wait..."
;
static
String
pleaseWait
=
"Please wait..."
;
static
String
notFoundPage
=
'Halaman yang anda cari tidak ditemukan'
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment