Added httpError function

Renamed apiCall to getRawJoke
Added HTTP Error Exception class
Added models and exceptions
This commit is contained in:
Erik C. Thauvin 2022-09-23 00:44:58 -07:00
parent 5ac9e751c3
commit c27321d31a
13 changed files with 288 additions and 108 deletions

View file

@ -26,3 +26,71 @@ data class Joke(
val language: Language
)
```
If an error occurs, a `JokeException` is thrown:
```kotlin
class JokeException(
val error: Boolean,
val internalError: Boolean,
val code: Int,
message: String,
val causedBy: List<String>,
val additionalInfo: String,
val timestamp: Long,
cause: Throwable? = null
) : Exception(message, cause)
```
If an HTTP error occurs an `HttpErrorException` is thrown, with its message and cause matching the [JokeAPI status codes](https://sv443.net/jokeapi/v2/#status-codes):
```kotlin
class HttpErrorException(
val statusCode: Int,
message: String,
cause: Throwable? = null
) : IOException(message, cause)
```
## Gradle, Maven, etc.
To use with [Gradle](https://gradle.org/), include the following dependency in your build file:
```gradle
dependencies {
implementation("net.thauvin.erik:jokeapi:0.9-SNAPSHOT")
}
```
Instructions for using with Maven, Ivy, etc. can be found on Maven Central.
## Raw Joke
You can also retrieve a raw joke in all [supported formats](https://jokeapi.dev/#format-param).
For example for YAML:
```kotlin
var joke = getRawJoke(format = Format.YAML, idRange = IdRange(22))
println(joke)
```
```yaml
error: false
category: "Programming"
type: "single"
joke: "If Bill Gates had a dime for every time Windows crashed ... Oh wait, he does."
flags:
nsfw: false
religious: false
political: false
racist: false
sexist: false
explicit: false
id: 22
safe: true
lang: "en"
```