Skip to content

Commit

Permalink
secure header
Browse files Browse the repository at this point in the history
  • Loading branch information
MOKTADIR authored and MOKTADIR committed Mar 20, 2023
1 parent ef95295 commit 8b3a63f
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 25 deletions.
9 changes: 5 additions & 4 deletions lib/app/modules/home/controllers/home_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ class HomeController extends GetxController with BaseController {
getPostList() async {
showLoading();

var response = await DioClient()
.get(url: ApiUrl.allPosts, header: {}).catchError(handleError);
var response =
await DioClient().get(url: ApiUrl.allPosts).catchError(handleError);

if (response == null) return;

Expand All @@ -31,8 +31,9 @@ class HomeController extends GetxController with BaseController {

getPostDetail(int? id) async {
showLoading();
var response = await DioClient().get(
url: "${ApiUrl.postDetail}$id", header: {}).catchError(handleError);
var response = await DioClient()
.get(url: "${ApiUrl.postDetail}$id")
.catchError(handleError);

if (response == null) return;

Expand Down
35 changes: 14 additions & 21 deletions lib/app/service/dio_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,24 @@ import 'dart:io';

import 'package:dio/dio.dart';

import 'helper/api_header.dart';

class DioClient {
static const int TIME_OUT_DURATION = 20;

//GET

Future<dynamic> get({
required String url,
Map<String, dynamic>? header,
Map<String, dynamic>? params,
}) async {
try {
var response = await Dio()
.get(url, options: Options(headers: header), queryParameters: params)
.get(url,
options: Options(headers: Header.defaultHeader),
queryParameters: params)
.timeout(const Duration(seconds: TIME_OUT_DURATION));

return response.data;
} catch (e) {
rethrow;
Expand All @@ -29,15 +33,12 @@ class DioClient {
//POST

Future<dynamic> post(
{required String url,
Map<String, dynamic>? header,
Map<String, dynamic>? params,
dynamic body}) async {
{required String url, Map<String, dynamic>? params, dynamic body}) async {
var payload = json.encode(body);
try {
var response = await Dio()
.post(url,
options: Options(headers: header),
options: Options(headers: Header.defaultHeader),
queryParameters: params,
data: payload)
.timeout(const Duration(seconds: TIME_OUT_DURATION));
Expand All @@ -51,15 +52,12 @@ class DioClient {
//PATCH

Future<dynamic> patch(
{required String url,
Map<String, dynamic>? header,
Map<String, dynamic>? params,
dynamic body}) async {
{required String url, Map<String, dynamic>? params, dynamic body}) async {
var payload = json.encode(body);
try {
var response = await Dio()
.patch(url,
options: Options(headers: header),
options: Options(headers: Header.defaultHeader),
queryParameters: params,
data: payload)
.timeout(const Duration(seconds: TIME_OUT_DURATION));
Expand All @@ -72,15 +70,12 @@ class DioClient {
//DELETE

Future<dynamic> delete(
{required String url,
Map<String, dynamic>? header,
Map<String, dynamic>? params,
dynamic body}) async {
{required String url, Map<String, dynamic>? params, dynamic body}) async {
var payload = json.encode(body);
try {
var response = await Dio()
.delete(url,
options: Options(headers: header),
options: Options(headers: Header.defaultHeader),
queryParameters: params,
data: payload)
.timeout(const Duration(seconds: TIME_OUT_DURATION));
Expand All @@ -95,7 +90,6 @@ class DioClient {
List<File>? docFileList = [];
Future<dynamic> multipartRequest({
required String url,
required Map<String, dynamic> header,
Map<String, dynamic>? params,
required Map<String, dynamic> body,
String? filepath,
Expand All @@ -110,7 +104,7 @@ class DioClient {
try {
var response = await Dio()
.post(url,
options: Options(headers: header),
options: Options(headers: Header.defaultMultipartHeader),
queryParameters: params,
data: formData)
.timeout(const Duration(seconds: TIME_OUT_DURATION));
Expand All @@ -124,7 +118,6 @@ class DioClient {

Future<dynamic> multipartSingleFile(
{required String url,
required Map<String, dynamic> header,
Map<String, dynamic>? params,
required Map<String, dynamic> body,
String? filepath,
Expand All @@ -137,7 +130,7 @@ class DioClient {
try {
var response = await Dio()
.post(url,
options: Options(headers: header),
options: Options(headers: Header.defaultMultipartHeader),
queryParameters: params,
data: formData)
.timeout(const Duration(seconds: TIME_OUT_DURATION));
Expand Down
26 changes: 26 additions & 0 deletions lib/app/service/helper/api_header.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
class Header {
// SECURE HEADER
static Map<String, dynamic> secureHeader = {
"Authorization": "Bearer 'token'",
'Accept': 'application/json',
'Content-Type': 'application/json',
};
// DEFAULT HEADER
static Map<String, dynamic> defaultHeader = {
'Accept': 'application/json',
'Content-Type': 'application/json',
};

// DEFAULT MULTIPART-HEADER
static Map<String, dynamic> defaultMultipartHeader = {
'Accept': 'application/json',
'Content-Type': 'multipart/form-data',
};

// SECURE HEADER
static Map<String, dynamic> secureMultipartHeader = {
"Authorization": "Bearer 'token'",
'Accept': 'application/json',
'Content-Type': 'multipart/form-data',
};
}

0 comments on commit 8b3a63f

Please sign in to comment.