@RequestMapping(value = "/{storyId}", method = RequestMethod.PUT) @Interceptors({ProjectMemberRequired.class}) @ResponseBody @Caching( evict = { @CacheEvict(value = GET_STORIES_CACHE, key = "#projectId + '*'"), @CacheEvict(value = IterationApiController.ITERATION_CACHE_NAME, key = "#projectId + '*'"), @CacheEvict(value = IterationApiController.ITERATIONS_CACHE_NAME, key = "#projectId + '*'") }) public StoryDTO updateStory( @PathVariable("companyId") int companyId, @PathVariable("projectId") int projectId, @PathVariable("storyId") int storyId, @Valid @RequestBody StoryForm form) { Story story = storyService.getStoryByIdWithoutChilds(storyId); form.setId(storyId); if (form.getParentStoryId() != null && form.getParentStoryId() != story.getParentStoryId()) { boolean succeed = storyService.changeStoryParentStoryId(storyId, form.getParentStoryId()); if (!succeed) { throw new BadRequestException(); } } storyService.updateStoryWithoutChangingParent(form); Story updatedStory = storyService.getById(story.getId()); StoryDTO storyDTO = StoryTransform.storyToStoryDTO(updatedStory); fillStoryDTO(storyDTO); return storyDTO; }
@RequestMapping(value = "", method = RequestMethod.POST) @Interceptors({ProjectMemberRequired.class}) @ResponseBody @Caching(evict = {@CacheEvict(value = GET_STORIES_CACHE, key = "#projectId + '*'")}) public StoryDTO newStory( @PathVariable("companyId") int companyId, @PathVariable("projectId") int projectId, @Valid @RequestBody StoryForm storyForm) { storyForm.setProjectId(projectId); storyForm.setCompanyId(companyId); storyForm.setCreatorId(sessionService.getCurrentUser().getId()); storyForm.setCreatorName(sessionService.getCurrentUser().getName()); Story story = storyService.create(storyForm); StoryDTO storyDTO = StoryTransform.storyToStoryDTO(story); fillStoryDTO(storyDTO); return storyDTO; }