Article 42GEV CodeSOD: A Swift Update

CodeSOD: A Swift Update

by
Remy Porter
from The Daily WTF on (#42GEV)

Banks are uniquely identified via a "SWIFT Code". It's an ISO Standard. Having an accurate SWIFT code for a given bank is of vital importance to anyone doing financial transactions. With mergers, moves, new branches, and so on, the SWIFT codes you do business with won't change often, but they will change.

Thus, Philip wasn't terribly surprised when he got a request to update a pile of SWIFT codes. He couldn't make the change via the database, though, as no one had permission to do that. He couldn't edit it through an application UI, because no one had ever built one.

Instead, he had to check out a Java web service from SVN, modify the hard-coded values in the code, deploy the service to production (an entirely manual process), and then invoke the web service via cURL.

 @GET@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })@Path("/writeAccountTableOther/{namespace}")public Response writeAccountTableOther(@PathParam("namespace") String namespace) {NamespaceManager.set(namespace);List<String> accounts = Arrays.asList( new String[] {"999,Initech Financial Svcs ,ABC123 ","998,Initech Investment ,BBC123 " ,"997,Initech BIC ,CBC123 " ,"996,Initrode Bank ,DBC123 " ,"995,Initrode Comercial ,ABC223 " ,"994,Initrode Industrial Bank ,FFF123 ","993,Initrode Millenium Bank ,GAB123 ","992,Initech Holdings ,QBC512 ","991,Initech Spirit Bank ,IIL512 "});for (String account : accounts) {String[] split = account.split(",");int i=0;Entity entity = new Entity("bni_other_acc", split[i].trim());entity.setProperty("NIBBank", split[i++].trim());entity.setProperty("Name", split[i++].trim());entity.setProperty("SwiftCode", split[i++].trim());DatastoreServiceFactory.getDatastoreService().put(entity);}return Response.status(Response.Status.OK).entity("DONE").build();}

This was the only mechanism for modifying these data values.

proget-icon.png [Advertisement] Ensure your software is built only once and then deployed consistently across environments, by packaging your applications and components. Learn how today! TheDailyWtf?d=yIl2AUoC8zAZKfQi2NddpI
External Content
Source RSS or Atom Feed
Feed Location http://syndication.thedailywtf.com/TheDailyWtf
Feed Title The Daily WTF
Feed Link http://thedailywtf.com/
Reply 0 comments