ProviderBase = require './ProviderBase'
FindTheBest = require './FindTheBest'
PriceCharting = require './PriceCharting'
Steam = require './Steam'
async = require 'async'

class AllPrices extends ProviderBase
	constructor: (@data) ->

	prices: (args, callback) ->
		additonal = 
			prices: []

		async.concat [PriceCharting, Steam], (Provider, next) =>
			provider = new Provider @data
			provider.prices(args, 
				(E, add) =>
					next E, (add.prices or [])
				)
		,(E, prices) =>
			if !args[0] 
				prices.sort (a,b) ->
					return a.price - b.price 
			else 
				prices.sort args[0]

			additonal['prices'] = prices
			callback E, additonal
				

module.exports = AllPrices