Skip to content

Commit

Permalink
[FIX] fixed error in method get HTTP request
Browse files Browse the repository at this point in the history
  • Loading branch information
hostelix committed Oct 29, 2019
1 parent ec00450 commit 093219a
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 50 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 1.1.0

- Fix error request GET

## 1.0.5

- Health suggestions sdk.dart
Expand Down
50 changes: 26 additions & 24 deletions lib/src/rest_client.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import 'dart:async';
import 'dart:core';
import 'dart:convert';
import 'dart:core';

import 'package:http/http.dart' as http;

import 'version.dart';

class MPRestClient {
Expand All @@ -14,24 +15,28 @@ class MPRestClient {

String get _makeAgent => 'MercadoPago Dart SDK v${SDK_VERSION}';

String _makeURL(uri, [Map<String, String> params]) {
return Uri.https(BASE_URL, uri, params).toString();
Map<String, String> get _defaultHeader {
return {
'User-Agent': this._makeAgent,
'Accept': this.MIME_JSON,
};
}

String _makeURL(String uri, [Map<String, String> params]) {
return Uri.https(this.BASE_URL, uri, params).toString();
}

Map<String, String> _makeHeaders({
Map<String, String> extraHeaders,
}) {
return {
'User-Agent': this._makeAgent,
'Accept': this.MIME_JSON,
}..addAll(extraHeaders);
if (extraHeaders != null) return this._defaultHeader..addAll(extraHeaders);
return this._defaultHeader;
}

Future<Map<String, dynamic>> get(
uri, [
Future<Map<String, dynamic>> get(String uri, [
Map<String, String> params,
]) async {
var response = await http.get(this._makeURL(uri, params),
final response = await http.get(this._makeURL(uri, params),
headers: this._makeHeaders());

return {
Expand All @@ -40,13 +45,12 @@ class MPRestClient {
};
}

Future<Map<String, dynamic>> post(
uri, {
Map<String, dynamic> data,
Map<String, String> params,
Future<Map<String, dynamic>> post(String uri, {
Map<String, dynamic> data: const {},
Map<String, String> params: const {},
String contentType,
}) async {
var response = await http.post(this._makeURL(uri, params),
final response = await http.post(this._makeURL(uri, params),
headers: this._makeHeaders(
extraHeaders: {'Content-type': contentType ?? this.MIME_JSON}),
body: json.encode(data));
Expand All @@ -57,13 +61,12 @@ class MPRestClient {
};
}

Future<Map<String, dynamic>> put(
uri, {
Map<String, dynamic> data,
Map<String, String> params,
Future<Map<String, dynamic>> put(String uri, {
Map<String, dynamic> data: const {},
Map<String, String> params: const {},
String contentType,
}) async {
var response = await http.put(this._makeURL(uri, params),
final response = await http.put(this._makeURL(uri, params),
headers: this._makeHeaders(
extraHeaders: {'Content-type': contentType ?? this.MIME_JSON}),
body: json.encode(data));
Expand All @@ -74,11 +77,10 @@ class MPRestClient {
};
}

Future<Map<String, dynamic>> delete(
uri, {
Map<String, String> params,
Future<Map<String, dynamic>> delete(String uri, {
Map<String, String> params: const {},
}) async {
var response = await http.delete(this._makeURL(uri, params),
final response = await http.delete(this._makeURL(uri, params),
headers: this._makeHeaders());

return {
Expand Down
39 changes: 18 additions & 21 deletions lib/src/sdk.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'dart:core';
import 'dart:async';
import 'dart:core';

import 'rest_client.dart';

class MP {
Expand Down Expand Up @@ -40,7 +41,7 @@ class MP {
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> getPayment(String id) async {
final String access_token = await this.getAccessToken();
return await this
return this
._restClient
.get('/v1/payments/${id}', {'access_token': access_token});
}
Expand All @@ -49,7 +50,7 @@ class MP {
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> getAuthorizedPayment(String id) async {
final String access_token = await this.getAccessToken();
return await this
return this
._restClient
.get('/authorized_payments/${id}', {'access_token': access_token});
}
Expand All @@ -58,15 +59,15 @@ class MP {
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> refundPayment(String id) async {
final String access_token = await this.getAccessToken();
return await this._restClient.post('/v1/payments/${id}/refunds',
return this._restClient.post('/v1/payments/${id}/refunds',
params: {'access_token': access_token}, data: {});
}

/// Cancel pending payment
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> cancelPayment(String id) async {
final String access_token = await this.getAccessToken();
return await this._restClient.put('/v1/payments/${id}',
return this._restClient.put('/v1/payments/${id}',
params: {'access_token': access_token}, data: {"status": "cancelled"});
}

Expand All @@ -81,15 +82,15 @@ class MP {
..addAll({'offset': offset})
..addAll({'limit': limit});

return await this._restClient.get('/v1/payments/search', filters);
return this._restClient.get('/v1/payments/search', filters);
}

/// Create a checkout preference
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> createPreference(
Map<String, dynamic> preference) async {
final String access_token = await this.getAccessToken();
return await this._restClient.post('/checkout/preferences',
return this._restClient.post('/checkout/preferences',
params: {'access_token': access_token}, data: preference);
}

Expand All @@ -98,15 +99,15 @@ class MP {
Future<Map<String, dynamic>> updatePreference(
String id, Map<String, dynamic> preference) async {
final String access_token = await this.getAccessToken();
return await this._restClient.put('/checkout/preferences/${id}',
return this._restClient.put('/checkout/preferences/${id}',
params: {'access_token': access_token}, data: preference);
}

/// Get a checkout preference
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> getPreference(String id) async {
final String access_token = await this.getAccessToken();
return await this
return this
._restClient
.get('/checkout/preferences/${id}', {'access_token': access_token});
}
Expand All @@ -116,15 +117,15 @@ class MP {
Future<Map<String, dynamic>> createPreapprovalPayment(
Map<String, dynamic> payment) async {
final String access_token = await this.getAccessToken();
return await this._restClient.post('/preapproval/',
return this._restClient.post('/preapproval/',
params: {'access_token': access_token}, data: payment);
}

/// Get a preapproval payment
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> getPreapprovalPayment(String id) async {
final String access_token = await this.getAccessToken();
return await this
return this
._restClient
.get('/preapproval/${id}', {'access_token': access_token});
}
Expand All @@ -134,22 +135,21 @@ class MP {
Future<Map<String, dynamic>> updatePreapprovalPayment(
String id, Map<String, dynamic> payment) async {
final String access_token = await this.getAccessToken();
return await this._restClient.put('/preapproval/${id}',
return this._restClient.put('/preapproval/${id}',
params: {'access_token': access_token}, data: payment);
}

/// Cancel preapproval payment
/// return Future<Map<String, dynamic>>
Future<Map<String, dynamic>> cancelPreapprovalPayment(String id) async {
final String access_token = await this.getAccessToken();
return await this._restClient.put('/preapproval/${id}',
return this._restClient.put('/preapproval/${id}',
params: {'access_token': access_token}, data: {"status": "cancelled"});
}

/// Generic resource get
/// Future<Map<String, dynamic>>
Future<Map<String, dynamic>> get(
uri, {
Future<Map<String, dynamic>> get(String uri, {
Map<String, String> params,
bool authenticate = true,
}) async {
Expand All @@ -162,8 +162,7 @@ class MP {

/// Generic resource post
/// Future<Map<String, dynamic>>
Future<Map<String, dynamic>> post(
uri, {
Future<Map<String, dynamic>> post(String uri, {
Map<String, dynamic> data,
Map<String, String> params,
}) async {
Expand All @@ -174,8 +173,7 @@ class MP {

/// Generic resource put
/// Future<Map<String, dynamic>>
Future<Map<String, dynamic>> put(
uri, {
Future<Map<String, dynamic>> put(String uri, {
Map<String, dynamic> data,
Map<String, String> params,
}) async {
Expand All @@ -186,8 +184,7 @@ class MP {

/// Generic resource delete
/// Future<Map<String, dynamic>>
Future<Map<String, dynamic>> delete(
uri, {
Future<Map<String, dynamic>> delete(String uri, {
Map<String, String> params,
}) async {
String token = await this.getAccessToken();
Expand Down
2 changes: 1 addition & 1 deletion lib/src/version.dart
Original file line number Diff line number Diff line change
@@ -1 +1 @@
const String SDK_VERSION = '1.0.2';
const String SDK_VERSION = '1.1.0';
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: >-
for use in applications web, server, flutter
author: Israel Lugo <hostelixisrael@gmail.com>
homepage: https://github.com/bmkeros/mercadopago_sdk_dart
version: 1.0.5
version: 1.1.0

dependencies:
http: ^0.12.0
Expand Down
13 changes: 10 additions & 3 deletions test/mercadopago_test.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import "package:test/test.dart";
import 'package:mercadopago_sdk/mercadopago_sdk.dart';
import "package:test/test.dart";

void main() {
String CLIENT_ID = '';
Expand All @@ -13,18 +13,25 @@ void main() {
expect(token, isNot(equals(null)));
});

test('Testing get()', () async {
var response =
await mp.get("/v1/payment_methods", authenticate: true, params: {});

expect(response['status'], equals(200));
});

test('Testing createPreference()', () async {
var response = await mp.createPreference({
"items": [
{
"title": "sdk-python",
"quantity": 5,
"currency_id": "VEF",
"currency_id": "ARS",
"unit_price": 10.5
}
]
});

expect(response['status'], equals(200));
expect(response['status'], equals(201));
});
}

0 comments on commit 093219a

Please sign in to comment.