public function addPolicy($roleId, Request $request)
{
$createStruct = $this->inputDispatcher->parse(new Message(array('Content-Type' => $request->headers->get('Content-Type')), $request->getContent()));
try {
// First try to treat $roleId as a role draft ID.
$role = $this->roleService->addPolicyByRoleDraft($this->roleService->loadRoleDraft($roleId), $createStruct);
} catch (NotFoundException $e) {
// Then try to treat $roleId as a role ID.
$role = $this->roleService->addPolicy($this->roleService->loadRole($roleId), $createStruct);
} catch (LimitationValidationException $e) {
throw new BadRequestException($e->getMessage());
}
return new Values\CreatedPolicy(array('policy' => $this->getLastAddedPolicy($role)));
}