2019-07-08 10:53:10 +00:00
|
|
|
import 'dart:convert';
|
|
|
|
import 'dart:async';
|
|
|
|
import 'package:http/http.dart' as http;
|
2019-07-16 10:28:36 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2019-07-08 10:53:10 +00:00
|
|
|
import 'package:local_spend/common/functions/get_token.dart';
|
|
|
|
|
|
|
|
class Organisation {
|
|
|
|
var id = 0;
|
|
|
|
var name = "";
|
|
|
|
var postcode = "";
|
2019-07-08 14:03:11 +00:00
|
|
|
var streetName = ""; //street_name
|
2019-07-08 10:53:10 +00:00
|
|
|
var town = "";
|
2019-07-08 14:03:11 +00:00
|
|
|
|
2019-08-07 12:15:15 +00:00
|
|
|
Organisation(
|
2019-08-07 14:32:52 +00:00
|
|
|
this.id,
|
|
|
|
this.name,
|
|
|
|
this.postcode,
|
|
|
|
this.streetName,
|
|
|
|
this.town,
|
|
|
|
);
|
2019-07-08 14:03:11 +00:00
|
|
|
|
2019-07-08 10:53:10 +00:00
|
|
|
}
|
|
|
|
|
2019-08-07 14:32:52 +00:00
|
|
|
class Organisations {
|
|
|
|
|
|
|
|
List<Organisation> getTestData() {
|
2019-08-08 14:25:43 +00:00
|
|
|
var numItems = 10;
|
2019-08-07 14:32:52 +00:00
|
|
|
var itemsList = new List<Organisation>();
|
|
|
|
|
|
|
|
for (int i = 0; i < numItems; i++) {
|
|
|
|
itemsList.add(new Organisation(
|
|
|
|
i,
|
|
|
|
"Payee " + (i + 1).toString(),
|
2019-08-12 09:33:02 +00:00
|
|
|
"tee hee hee",
|
2019-08-07 14:32:52 +00:00
|
|
|
"yeet street",
|
|
|
|
"Robloxia"
|
|
|
|
));
|
|
|
|
}
|
2019-07-08 14:03:11 +00:00
|
|
|
|
2019-08-07 14:32:52 +00:00
|
|
|
return itemsList;
|
2019-07-08 14:03:11 +00:00
|
|
|
}
|
|
|
|
|
2019-08-07 14:32:52 +00:00
|
|
|
List<Organisation> _jsonToOrganisations(String json) {
|
|
|
|
Map decoded = jsonDecode(json);
|
|
|
|
List<dynamic> validated = decoded['validated'];
|
|
|
|
List<Map> organisationsMaps = new List<Map>();
|
|
|
|
validated.forEach((element) => organisationsMaps.add(element));
|
|
|
|
List<Organisation> organisations = new List<Organisation>();
|
|
|
|
|
|
|
|
for (var i = 0; i < organisationsMaps.length; i++) {
|
|
|
|
final params = organisationsMaps[i].values.toList();
|
|
|
|
|
|
|
|
var newOrganisation = new Organisation(
|
|
|
|
params[0].toInt(),
|
|
|
|
params[1].toString(),
|
|
|
|
params[2].toString(), // oof
|
|
|
|
params[3].toString(), // this could be improved...
|
|
|
|
params[4].toString(),
|
|
|
|
);
|
|
|
|
|
|
|
|
organisations.add(newOrganisation);
|
|
|
|
}
|
2019-07-08 10:53:10 +00:00
|
|
|
|
2019-08-07 14:32:52 +00:00
|
|
|
return organisations;
|
2019-07-08 10:53:10 +00:00
|
|
|
}
|
|
|
|
|
2019-08-07 14:32:52 +00:00
|
|
|
Future<List<Organisation>> findOrganisations(String search) async {
|
|
|
|
final url = "https://dev.peartrade.org/api/search";
|
|
|
|
var token;
|
|
|
|
|
|
|
|
await getToken().then((result) {
|
|
|
|
token = result;
|
|
|
|
});
|
2019-07-16 10:28:36 +00:00
|
|
|
|
2019-08-07 14:32:52 +00:00
|
|
|
Map<String, String> body = {
|
|
|
|
"search_name":search,
|
|
|
|
"session_key":token,
|
|
|
|
};
|
|
|
|
|
|
|
|
final response = await http.post (
|
|
|
|
url,
|
|
|
|
body: json.encode(body),
|
|
|
|
);
|
|
|
|
|
|
|
|
if (response.statusCode == 200) {
|
|
|
|
//request successful
|
|
|
|
return _jsonToOrganisations(response.body);
|
|
|
|
} else {
|
|
|
|
// not successful
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
2019-07-08 10:53:10 +00:00
|
|
|
}
|