implemented markdown renderer in backend and frontend
This commit is contained in:
6
markdown/build.gradle.kts
Normal file
6
markdown/build.gradle.kts
Normal file
@@ -0,0 +1,6 @@
|
||||
description = "Umbrella : MarkdownCompanies renderer"
|
||||
|
||||
dependencies{
|
||||
implementation(project(":core"))
|
||||
implementation("de.srsoftware:tools.mime:1.1.2")
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package de.srsoftware.umbrella.markdown;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import de.srsoftware.tools.Path;
|
||||
import de.srsoftware.tools.SessionToken;
|
||||
import de.srsoftware.umbrella.core.BaseHandler;
|
||||
import de.srsoftware.umbrella.core.Util;
|
||||
import de.srsoftware.umbrella.core.api.UserService;
|
||||
import de.srsoftware.umbrella.core.exceptions.UmbrellaException;
|
||||
import de.srsoftware.umbrella.core.model.Token;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Optional;
|
||||
|
||||
import static de.srsoftware.tools.MimeType.MIME_HTML;
|
||||
|
||||
public class MarkdownApi extends BaseHandler {
|
||||
|
||||
private final UserService users;
|
||||
|
||||
public MarkdownApi(UserService userService) {
|
||||
users = userService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doPost(Path path, HttpExchange ex) throws IOException {
|
||||
try {
|
||||
addCors(ex);
|
||||
Optional<Token> token = SessionToken.from(ex).map(Token::of);
|
||||
var user = users.loadUser(token);
|
||||
|
||||
if (user.isEmpty()) throw UmbrellaException.forbidden("You must be logged in to use the markdown renderer!");
|
||||
var rendered = Util.markdown(body(ex));
|
||||
ex.getResponseHeaders().add(CONTENT_TYPE,MIME_HTML);
|
||||
return sendContent(ex,rendered);
|
||||
} catch (UmbrellaException e){
|
||||
return send(ex,e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user