{"action":"created","comment":{"url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/comments/97750411","pull_request_review_id":18368637,"id":97750411,"diff_hunk":"@@ -209,4 +236,69 @@ protected function updateCategory(CategoryInterface $category, $data)\n             );\n         }\n     }\n+\n+    /**\n+     * Validate a category. It throws an error 422 with every violated constraints if\n+     * the validation failed.\n+     *\n+     * @param CategoryInterface $category\n+     *\n+     * @throws ViolationHttpException\n+     */\n+    protected function validateCategory(CategoryInterface $category)\n+    {\n+        $violations = $this->validator->validate($category);\n+        if (0 !== $violations->count()) {\n+            throw new ViolationHttpException($violations);\n+        }\n+    }\n+\n+    /**\n+     * Get a response with HTTP code 201 when an object is created.\n+     *\n+     * @param CategoryInterface $category\n+     *\n+     * @return Response\n+     */\n+    protected function getCreateResponse(CategoryInterface $category)\n+    {\n+        $response = new Response(null, Response::HTTP_CREATED);\n+        $route = $this->router->generate('pim_api_rest_category_get', ['code' => $category->getCode()], true);\n+        $response->headers->set('Location', $route);\n+\n+        return $response;\n+    }\n+\n+    /**\n+     * Get a response with HTTP code 204 when an object is updated.\n+     *\n+     * @return Response\n+     */\n+    protected function getUpdateResponse()\n+    {\n+        $response = new Response(null, Response::HTTP_NO_CONTENT);","path":"src/Pim/Bundle/ApiBundle/Controller/Rest/CategoryController.php","position":113,"original_position":113,"commit_id":"7c4d69075387399f379e8d714e9a833effd85462","original_commit_id":"7c4d69075387399f379e8d714e9a833effd85462","user":{"login":"skeleton","id":1131230,"avatar_url":"https://avatars.githubusercontent.com/u/1131230?v=3","gravatar_id":"","url":"https://api.github.com/users/skeleton","html_url":"https://github.com/skeleton","followers_url":"https://api.github.com/users/skeleton/followers","following_url":"https://api.github.com/users/skeleton/following{/other_user}","gists_url":"https://api.github.com/users/skeleton/gists{/gist_id}","starred_url":"https://api.github.com/users/skeleton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skeleton/subscriptions","organizations_url":"https://api.github.com/users/skeleton/orgs","repos_url":"https://api.github.com/users/skeleton/repos","events_url":"https://api.github.com/users/skeleton/events{/privacy}","received_events_url":"https://api.github.com/users/skeleton/received_events","type":"User","site_admin":false},"body":"add a header Location","created_at":"2017-01-25T10:33:31Z","updated_at":"2017-01-25T10:34:46Z","html_url":"https://github.com/akeneo/pim-community-dev/pull/5572#discussion_r97750411","pull_request_url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572","_links":{"self":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/comments/97750411"},"html":{"href":"https://github.com/akeneo/pim-community-dev/pull/5572#discussion_r97750411"},"pull_request":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572"}}},"pull_request":{"url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572","id":103026859,"html_url":"https://github.com/akeneo/pim-community-dev/pull/5572","diff_url":"https://github.com/akeneo/pim-community-dev/pull/5572.diff","patch_url":"https://github.com/akeneo/pim-community-dev/pull/5572.patch","issue_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues/5572","number":5572,"state":"open","locked":false,"title":"Api 30 : add partial update of a category in the API","user":{"login":"ahocquard","id":1942439,"avatar_url":"https://avatars.githubusercontent.com/u/1942439?v=3","gravatar_id":"","url":"https://api.github.com/users/ahocquard","html_url":"https://github.com/ahocquard","followers_url":"https://api.github.com/users/ahocquard/followers","following_url":"https://api.github.com/users/ahocquard/following{/other_user}","gists_url":"https://api.github.com/users/ahocquard/gists{/gist_id}","starred_url":"https://api.github.com/users/ahocquard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahocquard/subscriptions","organizations_url":"https://api.github.com/users/ahocquard/orgs","repos_url":"https://api.github.com/users/ahocquard/repos","events_url":"https://api.github.com/users/ahocquard/events{/privacy}","received_events_url":"https://api.github.com/users/ahocquard/received_events","type":"User","site_admin":false},"body":"[//]: <> (<3 Thanks for taking the time to contribute! You're awesome! <3)\r\n\r\n[//]: <> (If you've never contributed to this repository before, please read https://github.com/akeneo/pim-community-dev/blob/master/.github/CONTRIBUTING.md)\r\n\r\n**Description (for Contributor and Core Developer)**\r\n\r\nMethod PATCH to update partially a category. \r\nIt's an upsert operation : if the category does not exist, it creates it.\r\nThe code is optional in the body (already provided in the url).\r\n\r\nIn case of a creation, the code should be the same between the url query parameter and the body (if it's provided in the body).\r\n\r\n\r\n[//]: <> (What does this Pull Request do? reference the related issue?)\r\n\r\n**Definition Of Done (for Core Developer only)**\r\n\r\n| Q                                 | A\r\n| --------------------------------- | ---\r\n| Added Specs                       | -\r\n| Added Behats                      | -\r\n| Added integration tests           | OK\r\n| Changelog updated                 | -\r\n| Review and 2 GTM                  | Todo\r\n| Micro Demo to the PO (Story only) | Todo\r\n| Migration script                  | -\r\n| Tech Doc                          | -\r\n\r\n`Todo`: Pending / Work in progress\r\n`OK`: Done / Validated\r\n`-`: Not needed\r\n","created_at":"2017-01-24T23:32:50Z","updated_at":"2017-01-25T10:34:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bc0031573a463882acc16993b603d1523615d32f","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572/commits","review_comments_url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572/comments","review_comment_url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/comments{/number}","comments_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues/5572/comments","statuses_url":"https://api.github.com/repos/akeneo/pim-community-dev/statuses/7c4d69075387399f379e8d714e9a833effd85462","head":{"label":"akeneo:API-30","ref":"API-30","sha":"7c4d69075387399f379e8d714e9a833effd85462","user":{"login":"akeneo","id":2510186,"avatar_url":"https://avatars.githubusercontent.com/u/2510186?v=3","gravatar_id":"","url":"https://api.github.com/users/akeneo","html_url":"https://github.com/akeneo","followers_url":"https://api.github.com/users/akeneo/followers","following_url":"https://api.github.com/users/akeneo/following{/other_user}","gists_url":"https://api.github.com/users/akeneo/gists{/gist_id}","starred_url":"https://api.github.com/users/akeneo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akeneo/subscriptions","organizations_url":"https://api.github.com/users/akeneo/orgs","repos_url":"https://api.github.com/users/akeneo/repos","events_url":"https://api.github.com/users/akeneo/events{/privacy}","received_events_url":"https://api.github.com/users/akeneo/received_events","type":"Organization","site_admin":false},"repo":{"id":5367323,"name":"pim-community-dev","full_name":"akeneo/pim-community-dev","owner":{"login":"akeneo","id":2510186,"avatar_url":"https://avatars.githubusercontent.com/u/2510186?v=3","gravatar_id":"","url":"https://api.github.com/users/akeneo","html_url":"https://github.com/akeneo","followers_url":"https://api.github.com/users/akeneo/followers","following_url":"https://api.github.com/users/akeneo/following{/other_user}","gists_url":"https://api.github.com/users/akeneo/gists{/gist_id}","starred_url":"https://api.github.com/users/akeneo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akeneo/subscriptions","organizations_url":"https://api.github.com/users/akeneo/orgs","repos_url":"https://api.github.com/users/akeneo/repos","events_url":"https://api.github.com/users/akeneo/events{/privacy}","received_events_url":"https://api.github.com/users/akeneo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/akeneo/pim-community-dev","description":"[Community Development Repository] The open source Product Information Management (PIM)","fork":false,"url":"https://api.github.com/repos/akeneo/pim-community-dev","forks_url":"https://api.github.com/repos/akeneo/pim-community-dev/forks","keys_url":"https://api.github.com/repos/akeneo/pim-community-dev/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akeneo/pim-community-dev/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akeneo/pim-community-dev/teams","hooks_url":"https://api.github.com/repos/akeneo/pim-community-dev/hooks","issue_events_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues/events{/number}","events_url":"https://api.github.com/repos/akeneo/pim-community-dev/events","assignees_url":"https://api.github.com/repos/akeneo/pim-community-dev/assignees{/user}","branches_url":"https://api.github.com/repos/akeneo/pim-community-dev/branches{/branch}","tags_url":"https://api.github.com/repos/akeneo/pim-community-dev/tags","blobs_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/refs{/sha}","trees_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akeneo/pim-community-dev/statuses/{sha}","languages_url":"https://api.github.com/repos/akeneo/pim-community-dev/languages","stargazers_url":"https://api.github.com/repos/akeneo/pim-community-dev/stargazers","contributors_url":"https://api.github.com/repos/akeneo/pim-community-dev/contributors","subscribers_url":"https://api.github.com/repos/akeneo/pim-community-dev/subscribers","subscription_url":"https://api.github.com/repos/akeneo/pim-community-dev/subscription","commits_url":"https://api.github.com/repos/akeneo/pim-community-dev/commits{/sha}","git_commits_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/commits{/sha}","comments_url":"https://api.github.com/repos/akeneo/pim-community-dev/comments{/number}","issue_comment_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues/comments{/number}","contents_url":"https://api.github.com/repos/akeneo/pim-community-dev/contents/{+path}","compare_url":"https://api.github.com/repos/akeneo/pim-community-dev/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akeneo/pim-community-dev/merges","archive_url":"https://api.github.com/repos/akeneo/pim-community-dev/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akeneo/pim-community-dev/downloads","issues_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues{/number}","pulls_url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls{/number}","milestones_url":"https://api.github.com/repos/akeneo/pim-community-dev/milestones{/number}","notifications_url":"https://api.github.com/repos/akeneo/pim-community-dev/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akeneo/pim-community-dev/labels{/name}","releases_url":"https://api.github.com/repos/akeneo/pim-community-dev/releases{/id}","deployments_url":"https://api.github.com/repos/akeneo/pim-community-dev/deployments","created_at":"2012-08-10T09:27:26Z","updated_at":"2017-01-23T09:55:05Z","pushed_at":"2017-01-25T10:25:17Z","git_url":"git://github.com/akeneo/pim-community-dev.git","ssh_url":"git@github.com:akeneo/pim-community-dev.git","clone_url":"https://github.com/akeneo/pim-community-dev.git","svn_url":"https://github.com/akeneo/pim-community-dev","homepage":"http://www.akeneo.com","size":100509,"stargazers_count":361,"watchers_count":361,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":196,"mirror_url":null,"open_issues_count":160,"forks":196,"open_issues":160,"watchers":361,"default_branch":"master"}},"base":{"label":"akeneo:api-web","ref":"api-web","sha":"cbe240f7e38e8a54695b97666a88676eb8a81ff1","user":{"login":"akeneo","id":2510186,"avatar_url":"https://avatars.githubusercontent.com/u/2510186?v=3","gravatar_id":"","url":"https://api.github.com/users/akeneo","html_url":"https://github.com/akeneo","followers_url":"https://api.github.com/users/akeneo/followers","following_url":"https://api.github.com/users/akeneo/following{/other_user}","gists_url":"https://api.github.com/users/akeneo/gists{/gist_id}","starred_url":"https://api.github.com/users/akeneo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akeneo/subscriptions","organizations_url":"https://api.github.com/users/akeneo/orgs","repos_url":"https://api.github.com/users/akeneo/repos","events_url":"https://api.github.com/users/akeneo/events{/privacy}","received_events_url":"https://api.github.com/users/akeneo/received_events","type":"Organization","site_admin":false},"repo":{"id":5367323,"name":"pim-community-dev","full_name":"akeneo/pim-community-dev","owner":{"login":"akeneo","id":2510186,"avatar_url":"https://avatars.githubusercontent.com/u/2510186?v=3","gravatar_id":"","url":"https://api.github.com/users/akeneo","html_url":"https://github.com/akeneo","followers_url":"https://api.github.com/users/akeneo/followers","following_url":"https://api.github.com/users/akeneo/following{/other_user}","gists_url":"https://api.github.com/users/akeneo/gists{/gist_id}","starred_url":"https://api.github.com/users/akeneo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akeneo/subscriptions","organizations_url":"https://api.github.com/users/akeneo/orgs","repos_url":"https://api.github.com/users/akeneo/repos","events_url":"https://api.github.com/users/akeneo/events{/privacy}","received_events_url":"https://api.github.com/users/akeneo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/akeneo/pim-community-dev","description":"[Community Development Repository] The open source Product Information Management (PIM)","fork":false,"url":"https://api.github.com/repos/akeneo/pim-community-dev","forks_url":"https://api.github.com/repos/akeneo/pim-community-dev/forks","keys_url":"https://api.github.com/repos/akeneo/pim-community-dev/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akeneo/pim-community-dev/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akeneo/pim-community-dev/teams","hooks_url":"https://api.github.com/repos/akeneo/pim-community-dev/hooks","issue_events_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues/events{/number}","events_url":"https://api.github.com/repos/akeneo/pim-community-dev/events","assignees_url":"https://api.github.com/repos/akeneo/pim-community-dev/assignees{/user}","branches_url":"https://api.github.com/repos/akeneo/pim-community-dev/branches{/branch}","tags_url":"https://api.github.com/repos/akeneo/pim-community-dev/tags","blobs_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/refs{/sha}","trees_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akeneo/pim-community-dev/statuses/{sha}","languages_url":"https://api.github.com/repos/akeneo/pim-community-dev/languages","stargazers_url":"https://api.github.com/repos/akeneo/pim-community-dev/stargazers","contributors_url":"https://api.github.com/repos/akeneo/pim-community-dev/contributors","subscribers_url":"https://api.github.com/repos/akeneo/pim-community-dev/subscribers","subscription_url":"https://api.github.com/repos/akeneo/pim-community-dev/subscription","commits_url":"https://api.github.com/repos/akeneo/pim-community-dev/commits{/sha}","git_commits_url":"https://api.github.com/repos/akeneo/pim-community-dev/git/commits{/sha}","comments_url":"https://api.github.com/repos/akeneo/pim-community-dev/comments{/number}","issue_comment_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues/comments{/number}","contents_url":"https://api.github.com/repos/akeneo/pim-community-dev/contents/{+path}","compare_url":"https://api.github.com/repos/akeneo/pim-community-dev/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akeneo/pim-community-dev/merges","archive_url":"https://api.github.com/repos/akeneo/pim-community-dev/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akeneo/pim-community-dev/downloads","issues_url":"https://api.github.com/repos/akeneo/pim-community-dev/issues{/number}","pulls_url":"https://api.github.com/repos/akeneo/pim-community-dev/pulls{/number}","milestones_url":"https://api.github.com/repos/akeneo/pim-community-dev/milestones{/number}","notifications_url":"https://api.github.com/repos/akeneo/pim-community-dev/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akeneo/pim-community-dev/labels{/name}","releases_url":"https://api.github.com/repos/akeneo/pim-community-dev/releases{/id}","deployments_url":"https://api.github.com/repos/akeneo/pim-community-dev/deployments","created_at":"2012-08-10T09:27:26Z","updated_at":"2017-01-23T09:55:05Z","pushed_at":"2017-01-25T10:25:17Z","git_url":"git://github.com/akeneo/pim-community-dev.git","ssh_url":"git@github.com:akeneo/pim-community-dev.git","clone_url":"https://github.com/akeneo/pim-community-dev.git","svn_url":"https://github.com/akeneo/pim-community-dev","homepage":"http://www.akeneo.com","size":100509,"stargazers_count":361,"watchers_count":361,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":196,"mirror_url":null,"open_issues_count":160,"forks":196,"open_issues":160,"watchers":361,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572"},"html":{"href":"https://github.com/akeneo/pim-community-dev/pull/5572"},"issue":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/issues/5572"},"comments":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/issues/5572/comments"},"review_comments":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572/comments"},"review_comment":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/pulls/5572/commits"},"statuses":{"href":"https://api.github.com/repos/akeneo/pim-community-dev/statuses/7c4d69075387399f379e8d714e9a833effd85462"}}}}
{"actor":{"display_login":"skeleton"}}