def process_after_request_hooks(self, resp):
        """Process the list of before_{method}_hooks and the before_all_hooks. The hooks
        will be processed in the following order

        1 - any after_{method}_hooks defined on the :class:`arrested.Endpoint` object
        2 - any after_all_hooks defined on the :class:`arrested.Endpoint` object
        2 - any after_all_hooks defined on the :class:`arrested.Resource` object
        4 - any after_all_hooks defined on the :class:`arrested.ArrestedAPI` object
        """

        hooks = []
        meth_hooks = getattr(
            self,
            'after_{method}_hooks'.format(method=self.meth),
            []
        )

        hooks.extend(meth_hooks)
        hooks.extend(self.after_all_hooks)

        if self.resource:
            hooks.extend(self.resource.after_all_hooks)
            hooks.extend(self.resource.api.after_all_hooks)

        for hook in chain(hooks):
            resp = hook(self, resp)

        return resp