Implementation of post deletion.
This commit is contained in:
@@ -17,6 +17,7 @@ import org.codiki.core.repositories.PostRepository;
|
|||||||
import org.codiki.core.security.TokenService;
|
import org.codiki.core.security.TokenService;
|
||||||
import org.codiki.core.services.ParserService;
|
import org.codiki.core.services.ParserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@@ -131,4 +132,10 @@ public class PostController {
|
|||||||
final HttpServletResponse pResponse) throws IOException {
|
final HttpServletResponse pResponse) throws IOException {
|
||||||
postService.update(pPost, pRequest, pResponse);
|
postService.update(pPost, pRequest, pResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/{postKey}")
|
||||||
|
public void delete(@PathVariable("postKey") final String pPostKey,
|
||||||
|
final HttpServletRequest pRequest, final HttpServletResponse pResponse) throws IOException {
|
||||||
|
postService.delete(pPostKey, pRequest, pResponse);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,4 +77,23 @@ public class PostService {
|
|||||||
pResponse.sendError(HttpServletResponse.SC_FORBIDDEN);
|
pResponse.sendError(HttpServletResponse.SC_FORBIDDEN);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void delete(final String pPostKey, final HttpServletRequest pRequest,
|
||||||
|
final HttpServletResponse pResponse) throws IOException {
|
||||||
|
final Optional<Post> postToDelete = postRepository.getByKey(pPostKey);
|
||||||
|
if(postToDelete.isPresent()) {
|
||||||
|
final Optional<User> connectedUser = tokenService.getAuthenticatedUserByToken(pRequest);
|
||||||
|
if(connectedUser.isPresent()) {
|
||||||
|
if(connectedUser.get().getKey().equals(postToDelete.get().getAuthor().getKey())) {
|
||||||
|
postRepository.delete(postToDelete.get());
|
||||||
|
} else {
|
||||||
|
pResponse.sendError(HttpServletResponse.SC_FORBIDDEN);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
pResponse.sendError(HttpServletResponse.SC_UNAUTHORIZED);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
pResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user