def handler(self, operation=None, **kwargs):
        """
        In addition to the methods described above, cruddy also provides a
        generic handler interface.  This is mainly useful when you want to wrap
        a cruddy handler in a Lambda function and then call that Lambda
        function to access the CRUD capabilities.

        To call the handler, you simply put all necessary parameters into a
        Python dictionary and then call the handler with that dict.

        ```
        params = {
            'operation': 'create',
            'item': {'foo': 'bar', 'fie': 'baz'}
        }
        response = crud.handler(**params)
        ```
        """
        response = self._new_response()
        if operation is None:
            response.status = 'error'
            response.error_type = 'MissingOperation'
            response.error_message = 'You must pass an operation'
            return response
        operation = operation.lower()
        self._check_supported_op(operation, response)
        if response.status == 'success':
            method = getattr(self, operation, None)
            if callable(method):
                response = method(**kwargs)
            else:
                response.status == 'error'
                response.error_type = 'NotImplemented'
                msg = 'Operation: {} is not implemented'.format(operation)
                response.error_message = msg
        return response
In addition to the methods described above, cruddy also provides a
        generic handler interface.  This is mainly useful when you want to wrap
        a cruddy handler in a Lambda function and then call that Lambda
        function to access the CRUD capabilities.

        To call the handler, you simply put all necessary parameters into a
        Python dictionary and then call the handler with that dict.

        ```
        params = {
            'operation': 'create',
            'item': {'foo': 'bar', 'fie': 'baz'}
        }
        response = crud.handler(**params)
        ```