radiant
Backwards-compatible facade for import radiant.
The implementation is split across focused radiant/* modules; this
module remains the compatibility surface for application code.
Types
pub type CorsConfig {
CorsConfig(
origins: List(String),
methods: List(http.Method),
headers: List(String),
max_age: Int,
)
}
Constructors
-
CorsConfig( origins: List(String), methods: List(http.Method), headers: List(String), max_age: Int, )
pub type FileSystem {
FileSystem(
read_bits: fn(String) -> Result(BitArray, Nil),
is_file: fn(String) -> Bool,
)
}
Constructors
-
FileSystem( read_bits: fn(String) -> Result(BitArray, Nil), is_file: fn(String) -> Bool, )
pub type Key(a) =
request.Key(a)
pub type Middleware =
fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray)
pub type Param(a) =
router.Param(a)
pub type RadiantError {
MissingHeader(String)
InvalidUtf8Body
MissingPathParam(String)
InvalidIntParam(String, String)
MissingQuery(String)
InvalidIntQuery(String, String)
InvalidFloatQuery(String, String)
InvalidBoolQuery(String, String)
MalformedQuery(String)
MissingContext(String)
}
Constructors
-
MissingHeader(String) -
InvalidUtf8Body -
MissingPathParam(String) -
InvalidIntParam(String, String) -
MissingQuery(String) -
InvalidIntQuery(String, String) -
InvalidFloatQuery(String, String) -
InvalidBoolQuery(String, String) -
MalformedQuery(String) -
MissingContext(String)
pub type Req =
request.Req
pub type Router =
router.Router
pub type TestRequest =
testing.TestRequest
Values
pub fn any(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn bad_request() -> response.Response(BitArray)
pub fn bad_request_with(
body_text: String,
) -> response.Response(BitArray)
pub fn body(req: request.Req) -> BitArray
pub fn build(
test_request: testing.TestRequest,
) -> request.Request(BitArray)
pub fn cors(
config: CorsConfig,
) -> fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray)
pub fn created(body_text: String) -> response.Response(BitArray)
pub fn default_cors() -> CorsConfig
pub fn delete(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn delete1(
router: router.Router,
pattern: String,
p1: router.Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> router.Router
pub fn delete2(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> router.Router
pub fn delete3(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> router.Router
pub fn delete4(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> router.Router
pub fn delete5(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> router.Router
pub fn delete6(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
p6: router.Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> router.Router
pub fn error_message(error: RadiantError) -> String
Return a concise, stable message for a RadiantError.
pub fn fallback(
router: router.Router,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn forbidden() -> response.Response(BitArray)
pub fn forbidden_with(
body_text: String,
) -> response.Response(BitArray)
pub fn get(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn get1(
router: router.Router,
pattern: String,
p1: router.Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> router.Router
pub fn get2(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> router.Router
pub fn get3(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> router.Router
pub fn get4(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> router.Router
pub fn get5(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> router.Router
pub fn get6(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
p6: router.Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> router.Router
pub fn get_context(
req: request.Req,
k: request.Key(a),
) -> Result(a, RadiantError)
pub fn handle(
router: router.Router,
req: request.Request(BitArray),
) -> response.Response(BitArray)
pub fn handle_with(
router: router.Router,
req: request.Request(anything),
body: BitArray,
) -> response.Response(BitArray)
pub fn header(
req: request.Req,
key: String,
) -> Result(String, RadiantError)
pub fn headers(req: request.Req) -> List(#(String, String))
pub fn html(body_text: String) -> response.Response(BitArray)
pub fn int(name: String) -> router.Param(Int)
pub fn int_param(
req: request.Req,
name: String,
) -> Result(Int, RadiantError)
pub fn internal_server_error() -> response.Response(BitArray)
pub fn internal_server_error_with(
body_text: String,
) -> response.Response(BitArray)
pub fn json(body_text: String) -> response.Response(BitArray)
pub fn json_body(
key: request.Key(a),
decoder: decode.Decoder(a),
) -> fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray)
pub fn json_error(
status: Int,
message: String,
) -> response.Response(BitArray)
pub fn json_error_from(
status: Int,
error: RadiantError,
) -> response.Response(BitArray)
Build a JSON error response from a detailed RadiantError.
pub fn key(name: String) -> request.Key(a)
pub fn key_named(
namespace: String,
name: String,
) -> request.Key(a)
pub fn log(
logger: fn(String) -> a,
) -> fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray)
pub fn method(req: request.Req) -> http.Method
pub fn method_not_allowed(
allowed: String,
) -> response.Response(BitArray)
pub fn middleware(
router: router.Router,
mw: fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray),
) -> router.Router
pub fn mount(
router: router.Router,
prefix: String,
sub_router: router.Router,
) -> router.Router
pub fn new() -> router.Router
pub fn no_content() -> response.Response(BitArray)
pub fn not_found() -> response.Response(BitArray)
pub fn not_found_with(
body_text: String,
) -> response.Response(BitArray)
pub fn ok(body_text: String) -> response.Response(BitArray)
pub fn options(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn original(req: request.Req) -> request.Request(BitArray)
pub fn patch(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn patch1(
router: router.Router,
pattern: String,
p1: router.Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> router.Router
pub fn patch2(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> router.Router
pub fn patch3(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> router.Router
pub fn patch4(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> router.Router
pub fn patch5(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> router.Router
pub fn patch6(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
p6: router.Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> router.Router
pub fn path_for(
pattern: String,
params: List(#(String, String)),
) -> Result(String, RadiantError)
pub fn path_for1(
pattern: String,
p1: router.Param(a),
v1: a,
) -> Result(String, RadiantError)
pub fn path_for2(
pattern: String,
p1: router.Param(a),
v1: a,
p2: router.Param(b),
v2: b,
) -> Result(String, RadiantError)
pub fn path_for3(
pattern: String,
p1: router.Param(a),
v1: a,
p2: router.Param(b),
v2: b,
p3: router.Param(c),
v3: c,
) -> Result(String, RadiantError)
pub fn path_for4(
pattern: String,
p1: router.Param(a),
v1: a,
p2: router.Param(b),
v2: b,
p3: router.Param(c),
v3: c,
p4: router.Param(d),
v4: d,
) -> Result(String, RadiantError)
pub fn path_for5(
pattern: String,
p1: router.Param(a),
v1: a,
p2: router.Param(b),
v2: b,
p3: router.Param(c),
v3: c,
p4: router.Param(d),
v4: d,
p5: router.Param(e),
v5: e,
) -> Result(String, RadiantError)
pub fn path_for6(
pattern: String,
p1: router.Param(a),
v1: a,
p2: router.Param(b),
v2: b,
p3: router.Param(c),
v3: c,
p4: router.Param(d),
v4: d,
p5: router.Param(e),
v5: e,
p6: router.Param(f),
v6: f,
) -> Result(String, RadiantError)
pub fn post(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn post1(
router: router.Router,
pattern: String,
p1: router.Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> router.Router
pub fn post2(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> router.Router
pub fn post3(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> router.Router
pub fn post4(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> router.Router
pub fn post5(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> router.Router
pub fn post6(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
p6: router.Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> router.Router
pub fn put(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn put1(
router: router.Router,
pattern: String,
p1: router.Param(a),
handler: fn(request.Req, a) -> response.Response(BitArray),
) -> router.Router
pub fn put2(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
handler: fn(request.Req, a, b) -> response.Response(BitArray),
) -> router.Router
pub fn put3(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
handler: fn(request.Req, a, b, c) -> response.Response(BitArray),
) -> router.Router
pub fn put4(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
handler: fn(request.Req, a, b, c, d) -> response.Response(
BitArray,
),
) -> router.Router
pub fn put5(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
handler: fn(request.Req, a, b, c, d, e) -> response.Response(
BitArray,
),
) -> router.Router
pub fn put6(
router: router.Router,
pattern: String,
p1: router.Param(a),
p2: router.Param(b),
p3: router.Param(c),
p4: router.Param(d),
p5: router.Param(e),
p6: router.Param(f),
handler: fn(request.Req, a, b, c, d, e, f) -> response.Response(
BitArray,
),
) -> router.Router
pub fn queries(req: request.Req) -> List(#(String, String))
pub fn query(
req: request.Req,
key: String,
) -> Result(String, RadiantError)
pub fn query_bool(
req: request.Req,
key: String,
) -> Result(Bool, RadiantError)
pub fn query_float(
req: request.Req,
key: String,
) -> Result(Float, RadiantError)
pub fn query_int(
req: request.Req,
key: String,
) -> Result(Int, RadiantError)
pub const query_method: http.Method
pub fn query_route(
router: router.Router,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
pub fn redirect(uri: String) -> response.Response(BitArray)
pub fn req_path(req: request.Req) -> String
pub fn request(
method: http.Method,
raw_path: String,
) -> testing.TestRequest
pub fn rescue(
on_error: fn(exception.Exception) -> response.Response(BitArray),
) -> fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray)
pub fn response(
status: Int,
body_text: String,
) -> response.Response(BitArray)
pub fn route(
router: router.Router,
method: http.Method,
pattern: String,
handler: fn(request.Req) -> response.Response(BitArray),
) -> router.Router
Register a route for any HTTP method.
pub fn routes(
router: router.Router,
) -> List(#(http.Method, String))
pub fn scope(
router: router.Router,
prefix: String,
builder: fn(router.Router) -> router.Router,
) -> router.Router
pub fn serve_static(
prefix prefix: String,
from directory: String,
via fs: FileSystem,
) -> fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray)
pub fn set_context(
req: request.Req,
k: request.Key(a),
value: a,
) -> request.Req
pub fn should_have_body(
resp: response.Response(BitArray),
expected: String,
) -> response.Response(BitArray)
pub fn should_have_header(
resp: response.Response(BitArray),
name: String,
expected: String,
) -> response.Response(BitArray)
pub fn should_have_json_body(
resp: response.Response(BitArray),
decoder: decode.Decoder(a),
) -> a
pub fn should_have_status(
resp: response.Response(BitArray),
expected: Int,
) -> response.Response(BitArray)
pub fn str(name: String) -> router.Param(String)
pub fn str_param(
req: request.Req,
name: String,
) -> Result(String, RadiantError)
pub fn test_delete(raw_path: String) -> request.Request(BitArray)
pub fn test_get(raw_path: String) -> request.Request(BitArray)
pub fn test_head(raw_path: String) -> request.Request(BitArray)
pub fn test_options(
raw_path: String,
) -> request.Request(BitArray)
pub fn test_patch(
raw_path: String,
body_text: String,
) -> request.Request(BitArray)
pub fn test_post(
raw_path: String,
body_text: String,
) -> request.Request(BitArray)
pub fn test_put(
raw_path: String,
body_text: String,
) -> request.Request(BitArray)
pub fn test_request(
method: http.Method,
raw_path: String,
) -> request.Request(BitArray)
pub fn text_body(
req: request.Req,
) -> Result(String, RadiantError)
pub fn unauthorized() -> response.Response(BitArray)
pub fn unauthorized_with(
body_text: String,
) -> response.Response(BitArray)
pub fn unprocessable_entity() -> response.Response(BitArray)
pub fn unprocessable_entity_with(
body_text: String,
) -> response.Response(BitArray)
pub fn with_header(
resp: response.Response(BitArray),
key: String,
value: String,
) -> response.Response(BitArray)
pub fn with_query(
test_request: testing.TestRequest,
key: String,
value: String,
) -> testing.TestRequest
pub fn with_request_body(
test_request: testing.TestRequest,
body: String,
) -> testing.TestRequest
pub fn with_request_header(
test_request: testing.TestRequest,
key: String,
value: String,
) -> testing.TestRequest
pub fn wrap(
mw: fn(fn(request.Req) -> response.Response(BitArray)) -> fn(
request.Req,
) -> response.Response(BitArray),
handler: fn(request.Req) -> response.Response(BitArray),
) -> fn(request.Req) -> response.Response(BitArray)