Skip to content

Instantly share code, notes, and snippets.

@geomagilles
Last active February 2, 2018 22:37
Show Gist options
  • Save geomagilles/4ecd9cab4e6d95e97524c3a00a077b9e to your computer and use it in GitHub Desktop.
Save geomagilles/4ecd9cab4e6d95e97524c3a00a077b9e to your computer and use it in GitHub Desktop.
var { Workflow } = require("zenaton");
var GetPriceFromProviderA = require("./GetPriceFromProviderA");
var GetPriceFromProviderB = require("./GetPriceFromProviderB");
var GetPriceFromProviderC = require("./GetPriceFromProviderC");
var OrderFromProviderA = require("./OrderFromProviderA");
var OrderFromProviderB = require("./OrderFromProviderB");
var OrderFromProviderC = require("./OrderFromProviderC");
module.exports = Workflow("OrderWorkflow", function() {
var prices = [
new GetPriceFromProviderA(this.item),
new GetPriceFromProviderB(this.item),
new GetPriceFromProviderC(this.item)
].execute();
switch (prices.indexOf(Math.min(...prices))) {
case 0:
new OrderFromProviderA(this.item).execute();
break;
case 1:
new OrderFromProviderB(this.item).execute();
break;
case 2:
new OrderFromProviderC(this.item).execute();
break;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment