[AB-82] adding urban dictionary api with a command

adding Instant handling to GSON
This commit is contained in:
Sheldan
2021-03-29 01:13:46 +02:00
parent c2b413e4b9
commit 45c1df0d44
21 changed files with 292 additions and 6 deletions

View File

@@ -5,7 +5,7 @@ import lombok.Getter;
@Getter
public enum WebserviceFeatureDefinition implements FeatureDefinition {
YOUTUBE("youtube");
YOUTUBE("youtube"), URBAN_DICTIONARY("urban");
private String key;

View File

@@ -0,0 +1,14 @@
package dev.sheldan.abstracto.webservices.urban.config;
import dev.sheldan.abstracto.core.config.FeatureConfig;
import dev.sheldan.abstracto.core.config.FeatureDefinition;
import dev.sheldan.abstracto.webservices.config.WebserviceFeatureDefinition;
import org.springframework.stereotype.Component;
@Component
public class UrbanFeatureConfig implements FeatureConfig {
@Override
public FeatureDefinition getFeature() {
return WebserviceFeatureDefinition.URBAN_DICTIONARY;
}
}

View File

@@ -0,0 +1,16 @@
package dev.sheldan.abstracto.webservices.urban.exception;
import dev.sheldan.abstracto.core.exception.AbstractoRunTimeException;
import dev.sheldan.abstracto.core.templating.Templatable;
public class NoUrbanDefinitionFoundException extends AbstractoRunTimeException implements Templatable {
@Override
public String getTemplateName() {
return "no_urban_definition_found_exception";
}
@Override
public Object getTemplateModel() {
return new Object();
}
}

View File

@@ -0,0 +1,20 @@
package dev.sheldan.abstracto.webservices.urban.model;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.time.Instant;
@Getter
@Setter
@Builder
public class UrbanDefinition {
private String definition;
private String author;
private String example;
private Instant creationDate;
private String url;
private Long upvoteCount;
private Long downVoteCount;
}

View File

@@ -0,0 +1,13 @@
package dev.sheldan.abstracto.webservices.urban.model;
import dev.sheldan.abstracto.core.models.context.SlimUserInitiatedServerContext;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.SuperBuilder;
@Getter
@Setter
@SuperBuilder
public class UrbanResponseModel extends SlimUserInitiatedServerContext {
private UrbanDefinition definition;
}

View File

@@ -0,0 +1,9 @@
package dev.sheldan.abstracto.webservices.urban.service;
import dev.sheldan.abstracto.webservices.urban.model.UrbanDefinition;
import java.io.IOException;
public interface UrbanService {
UrbanDefinition getUrbanDefinition(String query) throws IOException;
}