import logging
from tastypie.resources import ModelResource


class BaseResource(ModelResource):
    logger = logging.getLogger(__name__)
    pass

    def _remove_kwargs(self, *args, **kwargs):
        for arg in args:
            if arg in kwargs:
                del kwargs['activity_sharing_networks_facebook']

        return kwargs

    @staticmethod
    def hydrate_bitfield(field_name, bundle, object_field, choices, remove_field=True):
        if not hasattr(bundle, field_name + '____processed'):
            mask = 0
            for choice in choices:
                if choice[0] in bundle.data[field_name]:
                    if bundle.data[field_name][choice[0]]:
                        mask |= getattr(object_field, choice[0])

            bundle.data[field_name] = mask
            setattr(bundle, field_name + '____processed', True)
        return bundle

    @staticmethod
    def dehydrate_bitfield(field_name, bundle, object_field, choices, remove_field=True):
        if remove_field:
            del bundle.data[field_name]

        d = {}
        for choice in choices:
            d[choice[0]] = getattr(object_field, choice[0]).is_set

        bundle.data[field_name] = d
        return bundle