let UserError = require('../../helpers').UserError;

module.exports = Self => {
    Self.remoteMethod('updateTaxes', {
        description: 'Updates the item taxes',
        accessType: 'WRITE',
        accepts: [{
            arg: 'taxes',
            type: ['object'],
            required: true,
            description: 'The list of taxes to update',
            http: {source: 'body'}
        }],
        returns: {
            type: 'boolean',
            root: true
        },
        http: {
            path: `/updateTaxes`,
            verb: 'post'
        }
    });

    Self.updateTaxes = async taxes => {
        let promises = [];
        for (let tax of taxes) {
            if (!tax.taxClassFk)
                throw new UserError('Tax class cannot be blank');

            promises.push(Self.app.models.ItemTaxCountry.updateAll(
                {id: tax.id},
                {taxClassFk: tax.taxClassFk}
            ));
        }
        await Promise.all(promises);
        return true;
    };
};