purge(context, resource, force)

    Purge soft-deleted resources.

    >>> dcictl purge --resource remotecis

def purge(context, resource, force):
    """purge(context, resource, force)

    Purge soft-deleted resources.

    >>> dcictl purge --resource remotecis
    """

    resources = ['components', 'topics', 'tests', 'teams', 'feeders',
                 'remotecis', 'jobs', 'files', 'users', 'products']

    l_resources = resources if resource is None else resource.split(',')

    wrong_resources = [res for res in l_resources if res not in resources]
    test_auth = base.purge(context, 'users', **{'force': False})

    if len(wrong_resources) > 0:
        msg = 'Unkown resource have been specified: %s' % wrong_resources
        if context.format == 'json':
            utils.print_json(msg)
        else:
            click.echo(msg)

    elif test_auth.status_code == 401:
        utils.format_output(test_auth, context.format)

    else:
        purged = {}
        if force:
            # If in force mode. First we retrieve the number of items to be
            # purged and then we purge them. This allows to presents meaningful
            # informations to the user that used this command.

            for res in l_resources:
                item_purged = base.purge(context, res, **{'force': False}) \
                                  .json()['_meta']['count']
                if item_purged and \
                   base.purge(context, res,
                              **{'force': True}).status_code == 204:
                    purged[res] = '%s item(s) purged' % item_purged
            if len(purged.keys()):
                utils.print_json(purged)
            else:
                utils.print_json({'message': 'No item to be purged'})
        else:
            # If not in force mode. The various endpoints are queried for the
            # informations about the resources to be purged and displayed.
            for res in l_resources:
                resource_to_delete = base.purge(context, res,
                                                **{'force': force})
                if resource_to_delete.json()['_meta']['count'] > 0:
                    purged[res] = resource_to_delete.json()
            if len(purged.keys()):
                for item in purged.keys():
                    if len(l_resources) > 1:
                        click.echo('\n%s:\n' % item)
                    utils.format_output(purged[item][item], context.format)
            else:
                utils.format_output({}, context.format)