Added env files and the read base url using the dotenv package

This commit is contained in:
Abdullah Alassaf
2024-07-21 11:45:49 +03:00
parent 980d1017eb
commit 79a1c69af1
10 changed files with 100 additions and 84 deletions

View File

2
.env.development Normal file
View File

@ -0,0 +1,2 @@
ENV_NAME=development
BASE_URL=https://syncrow-dev.azurewebsites.net

View File

2
.env.production Normal file
View File

@ -0,0 +1,2 @@
ENV_NAME=production
BASE_URL=https://syncrow-staging.azurewebsites.net

View File

@ -0,0 +1,2 @@
ENV_NAME=staging
BASE_URL=https://syncrow-staging.azurewebsites.net

2
.gitignore vendored
View File

@ -20,7 +20,7 @@ migrate_working_dir/
# VS Code which you may wish to be included in version control, so this line # VS Code which you may wish to be included in version control, so this line
# is commented out by default. # is commented out by default.
#.vscode/ #.vscode/
*.env
# Flutter/Dart/Pub related # Flutter/Dart/Pub related
**/doc/api/ **/doc/api/
**/ios/Flutter/.last_build_id **/ios/Flutter/.last_build_id

View File

@ -6,6 +6,7 @@ import 'package:syncrow_app/features/menu/view/widgets/menu_list.dart';
import 'package:syncrow_app/features/menu/view/widgets/profile/profile_tab.dart'; import 'package:syncrow_app/features/menu/view/widgets/profile/profile_tab.dart';
import 'package:syncrow_app/features/shared_widgets/default_container.dart'; import 'package:syncrow_app/features/shared_widgets/default_container.dart';
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart';
import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart';
import 'package:syncrow_app/utils/context_extension.dart'; import 'package:syncrow_app/utils/context_extension.dart';
import 'package:syncrow_app/utils/resource_manager/constants.dart'; import 'package:syncrow_app/utils/resource_manager/constants.dart';
@ -32,6 +33,11 @@ class MenuView extends StatelessWidget {
const SizedBox( const SizedBox(
height: 15, height: 15,
), ),
const BodyMedium(
text: String.fromEnvironment('FLAVOR', defaultValue: 'production')),
const SizedBox(
height: 15,
),
InkWell( InkWell(
onTap: () { onTap: () {
AuthCubit.get(context).logout(); AuthCubit.get(context).logout();

View File

@ -2,6 +2,7 @@ import 'dart:async';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:syncrow_app/firebase_options.dart'; import 'package:syncrow_app/firebase_options.dart';
import 'package:syncrow_app/services/locator.dart'; import 'package:syncrow_app/services/locator.dart';
import 'package:syncrow_app/utils/bloc_observer.dart'; import 'package:syncrow_app/utils/bloc_observer.dart';
@ -15,9 +16,8 @@ void main() {
//to catch all the errors in the app and send them to firebase //to catch all the errors in the app and send them to firebase
runZonedGuarded(() async { runZonedGuarded(() async {
//to load the environment variables //to load the environment variables
// const environment = const environment = String.fromEnvironment('FLAVOR', defaultValue: 'production');
// String.fromEnvironment('FLAVOR', defaultValue: 'production'); await dotenv.load(fileName: '.env.$environment');
// await dotenv.load(fileName: '.env.$environment');
// //this is to make the app work with the self-signed certificate // //this is to make the app work with the self-signed certificate
// HttpOverrides.global = MyHttpOverrides(); // HttpOverrides.global = MyHttpOverrides();

View File

@ -1,154 +1,153 @@
import 'package:flutter_dotenv/flutter_dotenv.dart';
abstract class ApiEndpoints { abstract class ApiEndpoints {
static const String baseUrl = 'https://syncrow.azurewebsites.net'; static String baseUrl = dotenv.env['BASE_URL'] ?? '';
// static const String baseUrl = 'http://100.107.182.63:4001'; //Localhost
////////////////////////////////////// Authentication /////////////////////////////// ////////////////////////////////////// Authentication ///////////////////////////////
static const String signUp = '$baseUrl/authentication/user/signup'; static const String signUp = '/authentication/user/signup';
static const String login = '$baseUrl/authentication/user/login'; static const String login = '/authentication/user/login';
static const String deleteUser = '$baseUrl/authentication/user/delete/{id}'; static const String deleteUser = '/authentication/user/delete/{id}';
static const String sendOtp = '$baseUrl/authentication/user/send-otp'; static const String sendOtp = '/authentication/user/send-otp';
static const String verifyOtp = '$baseUrl/authentication/user/verify-otp'; static const String verifyOtp = '/authentication/user/verify-otp';
static const String forgetPassword = '$baseUrl/authentication/user/forget-password'; static const String forgetPassword = '/authentication/user/forget-password';
////////////////////////////////////// Spaces /////////////////////////////////////// ////////////////////////////////////// Spaces ///////////////////////////////////////
///Community Module ///Community Module
//POST //POST
static const String addCommunity = '$baseUrl/community'; static const String addCommunity = '/community';
static const String addCommunityToUser = '$baseUrl/community/user'; static const String addCommunityToUser = '/community/user';
//GET //GET
static const String communityByUuid = '$baseUrl/community/{communityUuid}'; static const String communityByUuid = '/community/{communityUuid}';
static const String communityChild = '$baseUrl/community/child/{communityUuid}'; static const String communityChild = '/community/child/{communityUuid}';
static const String communityUser = '$baseUrl/community/user/{userUuid}'; static const String communityUser = '/community/user/{userUuid}';
//PUT //PUT
static const String renameCommunity = '$baseUrl/community/rename/{communityUuid}'; static const String renameCommunity = '/community/rename/{communityUuid}';
///Building Module ///Building Module
//POST //POST
static const String addBuilding = '$baseUrl/building'; static const String addBuilding = '/building';
static const String addBuildingToUser = '$baseUrl/building/user'; static const String addBuildingToUser = '/building/user';
//GET //GET
static const String buildingByUuid = '$baseUrl/building/{buildingUuid}'; static const String buildingByUuid = '/building/{buildingUuid}';
static const String buildingChild = '$baseUrl/building/child/{buildingUuid}'; static const String buildingChild = '/building/child/{buildingUuid}';
static const String buildingParent = '$baseUrl/building/parent/{buildingUuid}'; static const String buildingParent = '/building/parent/{buildingUuid}';
static const String buildingUser = '$baseUrl/building/user/{userUuid}'; static const String buildingUser = '/building/user/{userUuid}';
//PUT //PUT
static const String renameBuilding = '$baseUrl/building/rename/{buildingUuid}'; static const String renameBuilding = '/building/rename/{buildingUuid}';
///Floor Module ///Floor Module
//POST //POST
static const String addFloor = '$baseUrl/floor'; static const String addFloor = '/floor';
static const String addFloorToUser = '$baseUrl/floor/user'; static const String addFloorToUser = '/floor/user';
//GET //GET
static const String floorByUuid = '$baseUrl/floor/{floorUuid}'; static const String floorByUuid = '/floor/{floorUuid}';
static const String floorChild = '$baseUrl/floor/child/{floorUuid}'; static const String floorChild = '/floor/child/{floorUuid}';
static const String floorParent = '$baseUrl/floor/parent/{floorUuid}'; static const String floorParent = '/floor/parent/{floorUuid}';
static const String floorUser = '$baseUrl/floor/user/{userUuid}'; static const String floorUser = '/floor/user/{userUuid}';
//PUT //PUT
static const String renameFloor = '$baseUrl/floor/rename/{floorUuid}'; static const String renameFloor = '/floor/rename/{floorUuid}';
///Unit Module ///Unit Module
//POST //POST
static const String addUnit = '$baseUrl/unit'; static const String addUnit = '/unit';
static const String addUnitToUser = '$baseUrl/unit/user'; static const String addUnitToUser = '/unit/user';
//GET //GET
static const String unitByUuid = '$baseUrl/unit/'; static const String unitByUuid = '/unit/';
static const String unitChild = '$baseUrl/unit/child/'; static const String unitChild = '/unit/child/';
static const String unitParent = '$baseUrl/unit/parent/{unitUuid}'; static const String unitParent = '/unit/parent/{unitUuid}';
static const String unitUser = '$baseUrl/unit/user/'; static const String unitUser = '/unit/user/';
static const String invitationCode = '$baseUrl/unit/{unitUuid}/invitation-code'; static const String invitationCode = '/unit/{unitUuid}/invitation-code';
static const String verifyInvitationCode = '$baseUrl/unit/user/verify-code'; static const String verifyInvitationCode = '/unit/user/verify-code';
//PUT //PUT
static const String renameUnit = '$baseUrl/unit/rename/{unitUuid}'; static const String renameUnit = '/unit/rename/{unitUuid}';
///Room Module ///Room Module
//POST //POST
static const String addRoom = '$baseUrl/room'; static const String addRoom = '/room';
static const String addRoomToUser = '$baseUrl/room/user'; static const String addRoomToUser = '/room/user';
//GET //GET
static const String roomByUuid = '$baseUrl/room/{roomUuid}'; static const String roomByUuid = '/room/{roomUuid}';
static const String roomParent = '$baseUrl/room/parent/{roomUuid}'; static const String roomParent = '/room/parent/{roomUuid}';
static const String roomUser = '$baseUrl/room/user/{userUuid}'; static const String roomUser = '/room/user/{userUuid}';
//PUT //PUT
static const String renameRoom = '$baseUrl/room/rename/{roomUuid}'; static const String renameRoom = '/room/rename/{roomUuid}';
///Group Module ///Group Module
//POST //POST
static const String addGroup = '$baseUrl/group'; static const String addGroup = '/group';
static const String controlGroup = '$baseUrl/group/control'; static const String controlGroup = '/group/control';
//GET //GET
static const String groupBySpace = '$baseUrl/group/{unitUuid}'; static const String groupBySpace = '/group/{unitUuid}';
static const String devicesByGroupName = '$baseUrl/group/{unitUuid}/devices/{groupName}'; static const String devicesByGroupName = '/group/{unitUuid}/devices/{groupName}';
static const String groupByUuid = '$baseUrl/group/{groupUuid}'; static const String groupByUuid = '/group/{groupUuid}';
//DELETE //DELETE
static const String deleteGroup = '$baseUrl/group/{groupUuid}'; static const String deleteGroup = '/group/{groupUuid}';
////////////////////////////////////// Devices /////////////////////////////////////// ////////////////////////////////////// Devices ///////////////////////////////////////
///Device Module ///Device Module
//POST //POST
static const String addDeviceToRoom = '$baseUrl/device/room'; static const String addDeviceToRoom = '/device/room';
static const String addDeviceToGroup = '$baseUrl/device/group'; static const String addDeviceToGroup = '/device/group';
static const String controlDevice = '$baseUrl/device/{deviceUuid}/control'; static const String controlDevice = '/device/{deviceUuid}/control';
static const String firmwareDevice = '$baseUrl/device/{deviceUuid}/firmware/{firmwareVersion}'; static const String firmwareDevice = '/device/{deviceUuid}/firmware/{firmwareVersion}';
static const String getDevicesByUserId = '$baseUrl/device/user/{userId}'; static const String getDevicesByUserId = '/device/user/{userId}';
static const String getDevicesByUnitId = '$baseUrl/device/unit/{unitUuid}'; static const String getDevicesByUnitId = '/device/unit/{unitUuid}';
//GET //GET
static const String deviceByRoom = '$baseUrl/device/room'; static const String deviceByRoom = '/device/room';
static const String deviceByUuid = '$baseUrl/device/{deviceUuid}'; static const String deviceByUuid = '/device/{deviceUuid}';
static const String deviceFunctions = '$baseUrl/device/{deviceUuid}/functions'; static const String deviceFunctions = '/device/{deviceUuid}/functions';
static const String gatewayApi = '$baseUrl/device/gateway/{gatewayUuid}/devices'; static const String gatewayApi = '/device/gateway/{gatewayUuid}/devices';
static const String deviceFunctionsStatus = '$baseUrl/device/{deviceUuid}/functions/status'; static const String deviceFunctionsStatus = '/device/{deviceUuid}/functions/status';
///Device Permission Module ///Device Permission Module
//POST //POST
static const String addDevicePermission = '$baseUrl/device-permission/add'; static const String addDevicePermission = '/device-permission/add';
//GET //GET
static const String devicePermissionList = '$baseUrl/device-permission/list'; static const String devicePermissionList = '/device-permission/list';
//PUT //PUT
static const String editDevicePermission = '$baseUrl/device-permission/edit/{userId}'; static const String editDevicePermission = '/device-permission/edit/{userId}';
static const String assignDeviceToRoom = '$baseUrl/device/room'; static const String assignDeviceToRoom = '/device/room';
/// Scene API //////////////////// /// Scene API ////////////////////
/// POST /// POST
static const String createScene = '$baseUrl/scene/tap-to-run'; static const String createScene = '/scene/tap-to-run';
static const String triggerScene = '$baseUrl/scene/tap-to-run/trigger/{sceneId}'; static const String triggerScene = '/scene/tap-to-run/trigger/{sceneId}';
/// GET /// GET
static const String getUnitScenes = '$baseUrl/scene/tap-to-run/{unitUuid}'; static const String getUnitScenes = '/scene/tap-to-run/{unitUuid}';
static const String getScene = '$baseUrl/scene/tap-to-run/details/{sceneId}'; static const String getScene = '/scene/tap-to-run/details/{sceneId}';
/// PUT /// PUT
static const String updateScene = '$baseUrl/scene/tap-to-run/{sceneId}'; static const String updateScene = '/scene/tap-to-run/{sceneId}';
/// DELETE /// DELETE
static const String deleteScene = '$baseUrl/scene/tap-to-run/{unitUuid}/{sceneId}'; static const String deleteScene = '/scene/tap-to-run/{unitUuid}/{sceneId}';
//////////////////////Door Lock ////////////////////// //////////////////////Door Lock //////////////////////
//online //online
static const String addTemporaryPassword = static const String addTemporaryPassword = '/door-lock/temporary-password/online/{doorLockUuid}';
'$baseUrl/door-lock/temporary-password/online/{doorLockUuid}'; static const String getTemporaryPassword = '/door-lock/temporary-password/online/{doorLockUuid}';
static const String getTemporaryPassword =
'$baseUrl/door-lock/temporary-password/online/{doorLockUuid}';
//one-time offline //one-time offline
static const String addOneTimeTemporaryPassword = static const String addOneTimeTemporaryPassword =
'$baseUrl/door-lock/temporary-password/offline/one-time/{doorLockUuid}'; '/door-lock/temporary-password/offline/one-time/{doorLockUuid}';
static const String getOneTimeTemporaryPassword = static const String getOneTimeTemporaryPassword =
'$baseUrl/door-lock/temporary-password/offline/one-time/{doorLockUuid}'; '/door-lock/temporary-password/offline/one-time/{doorLockUuid}';
//multiple-time offline //multiple-time offline
static const String addMultipleTimeTemporaryPassword = static const String addMultipleTimeTemporaryPassword =
'$baseUrl/door-lock/temporary-password/offline/multiple-time/{doorLockUuid}'; '/door-lock/temporary-password/offline/multiple-time/{doorLockUuid}';
static const String getMultipleTimeTemporaryPassword = static const String getMultipleTimeTemporaryPassword =
'$baseUrl/door-lock/temporary-password/offline/multiple-time/{doorLockUuid}'; '/door-lock/temporary-password/offline/multiple-time/{doorLockUuid}';
//multiple-time offline //multiple-time offline
static const String deleteTemporaryPassword = static const String deleteTemporaryPassword =
'$baseUrl/door-lock/temporary-password/{doorLockUuid}/{passwordId}'; '/door-lock/temporary-password/{doorLockUuid}/{passwordId}';
} }

View File

@ -5,7 +5,7 @@ description: This is the mobile application project, developed with Flutter for
# pub.dev using `flutter pub publish`. This is preferred for private packages. # pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: "none" # Remove this line if you wish to publish to pub.dev publish_to: "none" # Remove this line if you wish to publish to pub.dev
version: 1.0.1+11 version: 1.0.1+12
environment: environment:
sdk: ">=3.0.6 <4.0.0" sdk: ">=3.0.6 <4.0.0"
@ -74,6 +74,11 @@ flutter:
- assets/icons/MenuIcons/SecurityAndPrivacyIcons/ - assets/icons/MenuIcons/SecurityAndPrivacyIcons/
- assets/icons/curtainsIcon/ - assets/icons/curtainsIcon/
- assets/icons/functions_icons/ - assets/icons/functions_icons/
- .env.development
- .env.staging
- .env.production
fonts: fonts:
- family: Aftika - family: Aftika
fonts: fonts: