Skip to content

Commit

Permalink
update domain controller
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuamshana committed Aug 31, 2019
1 parent cde2d09 commit fc1a447
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 28 deletions.
41 changes: 29 additions & 12 deletions lib/controller/domain.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import 'package:bfast/core/domain.dart';
import 'dart:convert';

class DomainController implements DomainI {

String _domainName;
Map<String, Object> _model = Map();
Config _config;
Expand All @@ -14,9 +13,27 @@ class DomainController implements DomainI {
}

@override
Future delete({String link, String id}) {
// TODO: implement delete
return null;
Future delete({String link, String id}) async {
var headers = this._config.getHeaders();
if (link != null) {
var results = await Config.client.delete(link, headers: headers);
if (results.statusCode.toString().startsWith('2')) {
return {"message": "Object deleted"};
} else {
throw Exception({"message": '${results.reasonPhrase}'});
}
} else if (id != null) {
var results = await Config.client.delete(
'${this._config.getApiUrl(this._domainName)}/$id',
headers: headers);
if (results.statusCode.toString().startsWith('2')) {
return {"message": "Object deleted"};
} else {
throw Exception({"message": '${results.reasonPhrase}'});
}
}else{
throw Exception({"message": "Please provide object id or link"});
}
}

@override
Expand All @@ -41,14 +58,15 @@ class DomainController implements DomainI {
Future save() async {
var headers = this._config.getHeaders();
var results = await Config.client.post(
this._config.getApiUrl(this._domainName), headers: headers,
this._config.getApiUrl(this._domainName),
headers: headers,
body: jsonEncode(this._model));
print(results.statusCode);
// print(results.statusCode.toString().startsWith('2'));
this._model = Map();
if(results.toString().startsWith('2')){
return results.body;
}else{
throw Exception(results.body);
if (results.statusCode.toString().startsWith('2')) {
return {"message": 'Object created', this._domainName: results.body};
} else {
throw Exception({"message": "Fails to create object"});
}
}

Expand All @@ -75,5 +93,4 @@ class DomainController implements DomainI {
// TODO: implement update
return null;
}

}
}
48 changes: 32 additions & 16 deletions test/bfast_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,39 @@ void main() {
test("should save a domain", () async {
final client = MockClient();
final bfast = new BFast();
bfast.int(
serverUrl: 'http://localhost',
httpClient: null,
apiKey: '');
var r = await bfast
.domain('tests')
.set("name", "Joshua")
// .set("billNumber", "223dsfdgsd5dgh")
.save();

print(r);
expect(1, 2);
// when(client.post('${client.mockAPi}/ide/faas/names',
// headers: anyNamed('headers'), body: jsonEncode({})))
// .thenAnswer(
// (_) async => http.Response('{"message": "Not Found"}', 404));
bfast.int(serverUrl: client.mockAPi, httpClient: client, apiKey: '');

when(client.post('${client.mockAPi}/ide/api/tests',
headers: anyNamed('headers'),
body: jsonEncode({"name": "Joshua"})))
.thenAnswer(
(_) async => http.Response('{"message": "Object created"}', 201));

var r = await bfast.domain('tests').set("name", "Joshua").save();

expect(r['message'], 'Object created');
});

test("should delete a domain", () async {
final client = MockClient();
final bfast = new BFast();
bfast.int(serverUrl: client.mockAPi, httpClient: client, apiKey: '');

when(client.delete(
'${client.mockAPi}/ide/api/tests/5d6912d19470450007f48717',
headers: anyNamed('headers')))
.thenAnswer(
(_) async => http.Response('{"message": "Object deleted"}', 204));

var r =
await bfast.domain('tests').delete(id: '5d6912d19470450007f48717');
// print(r);
expect(r['message'], 'Object deleted');
});




});

group('bfast function test', () {
Expand Down

0 comments on commit fc1a447

Please sign in to comment.