Index: 2-7-serve/lib/server/piratesapi.dart |
diff --git a/2-7-serve/lib/server/piratesapi.dart b/2-7-serve/lib/server/piratesapi.dart |
index c26c266b715ec8379d9e325baee7eae47e73e1bd..7ec7708eb36e1c3c864fb7a80b0b8909848e480f 100644 |
--- a/2-7-serve/lib/server/piratesapi.dart |
+++ b/2-7-serve/lib/server/piratesapi.dart |
@@ -4,8 +4,6 @@ |
library pirate.server; |
-import 'dart:convert' show JSON; |
-import 'dart:io'; |
import 'package:rpc/rpc.dart'; |
import '../common/messages.dart'; |
@@ -13,50 +11,42 @@ import '../common/utils.dart'; |
@ApiClass(version: 'v1') |
class PiratesApi { |
- final Map<int, Pirate> _alivePirates = {}; |
- PirateShanghaier _shanghaier; |
- Map<String, List<String>> _properPirates; |
- |
- PiratesApi() { |
- var namesFile = new File( |
- Platform.script.resolve('../lib/server/piratenames.json').toFilePath()); |
- _properPirates = JSON.decode(namesFile.readAsStringSync()); |
- _shanghaier = new PirateShanghaier(_properPirates); |
- } |
+ final Map<int, Pirate> _pirateCrew = {}; |
+ final PirateShanghaier _shanghaier = new PirateShanghaier(properPirateNames); |
@ApiMethod(method: 'POST', path: 'pirate') |
- Pirate addPirate(Pirate newPirate) { |
+ Pirate hirePirate(Pirate newPirate) { |
// Make sure this is a real pirate... |
if (!truePirate(newPirate)) { |
throw new BadRequestError( |
'$newPirate cannot be a pirate. \'Tis not a pirate name!'); |
} |
- if (_alivePirates.containsKey(newPirate.toString().hashCode)) { |
+ if (_pirateCrew.containsKey(newPirate.toString().hashCode)) { |
throw new BadRequestError( |
'$newPirate is already part of your crew!'); |
} |
// Add pirate to store. |
- _alivePirates[newPirate.toString().hashCode] = newPirate; |
+ _pirateCrew[newPirate.toString().hashCode] = newPirate; |
return newPirate; |
} |
@ApiMethod( |
method: 'DELETE', path: 'pirate/{name}/the/{appellation}') |
- Pirate killPirate(String name, String appellation) { |
+ Pirate firePirate(String name, String appellation) { |
var pirate = new Pirate() |
..name = Uri.decodeComponent(name) |
..appellation = Uri.decodeComponent(appellation); |
- if (!_alivePirates.containsKey(pirate.toString().hashCode)) { |
+ if (!_pirateCrew.containsKey(pirate.toString().hashCode)) { |
throw new NotFoundError( |
'Could not find pirate \'$pirate\'! Maybe they\'ve abandoned ship!'); |
} |
- return _alivePirates.remove(pirate.toString().hashCode); |
+ return _pirateCrew.remove(pirate.toString().hashCode); |
} |
@ApiMethod(method: 'GET', path: 'pirates') |
List<Pirate> listPirates() { |
- return _alivePirates.values.toList(); |
+ return _pirateCrew.values.toList(); |
} |
@ApiMethod(path: 'shanghai') // Default HTTP method is GET. |
@@ -65,12 +55,12 @@ class PiratesApi { |
if (pirate == null) { |
throw new InternalServerError('Ran out of pirates!'); |
} |
- _alivePirates[pirate.toString().hashCode] = pirate; |
+ _pirateCrew[pirate.toString().hashCode] = pirate; |
return pirate; |
} |
@ApiMethod(path: 'proper/pirates') |
Map<String, List<String>> properPirates() { |
- return _properPirates; |
+ return properPirateNames; |
} |
} |