Skip to content

Instantly share code, notes, and snippets.

@vlio20
Last active June 19, 2023 23:56
Show Gist options
  • Save vlio20/27023c55fd8df349a4487b505ba72c3b to your computer and use it in GitHub Desktop.
Save vlio20/27023c55fd8df349a4487b505ba72c3b to your computer and use it in GitHub Desktop.
Kotlin Http Status Codes enum
package oogaday.commons.enums
enum class StatusCode(val code: Int) {
Continue(100),
SwitchingProtocols(101),
Processing(102),
OK(200),
Created(201),
Accepted(202),
NonAuthoritativeInformation(203),
NoContent(204),
ResetContent(205),
PartialContent(206),
MultiStatus(207),
AlreadyReported(208),
IMUsed(226),
MultipleChoices(300),
MovedPermanently(301),
Found(302),
SeeOther(303),
NotModified(304),
UseProxy(305),
TemporaryRedirect(307),
PermanentRedirect(308),
BadRequest(400),
Unauthorized(401),
PaymentRequired(402),
Forbidden(403),
NotFound(404),
MethodNotAllowed(405),
NotAcceptable(406),
ProxyAuthenticationRequired(407),
RequestTimeout(408),
Conflict(409),
Gone(410),
LengthRequired(411),
PreconditionFailed(412),
PayloadTooLarge(413),
UriTooLong(414),
UnsupportedMediaType(415),
RangeNotSatisfiable(416),
ExpectationFailed(417),
IAmATeapot(418),
MisdirectedRequest(421),
UnprocessableEntity(422),
Locked(423),
FailedDependency(424),
UpgradeRequired(426),
PreconditionRequired(428),
TooManyRequests(429),
RequestHeaderFieldsTooLarge(431),
UnavailableForLegalReasons(451),
InternalServerError(500),
NotImplemented(501),
BadGateway(502),
ServiceUnavailable(503),
GatewayTimeout(504),
HttpVersionNotSupported(505),
VariantAlsoNegotiates(506),
InsufficientStorage(507),
LoopDetected(508),
NotExtended(510),
NetworkAuthenticationRequired(511),
Unknown(0)
}
@simgesengun
Copy link

companion object {
fun from(code: Int): StatusCode {

You can also do it as:

companion object {
    fun from(code: Int): StatusCode {
        return StatusCode.values().find {
            it.code == code
        } ?: Unknown
    }
} 

or

companion object {
    fun Int.toStatusCode(): StatusCode {
        return StatusCode.values().find {
            it.code == this
        } ?: Unknown
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment