package Ġplay w rig kt . sk ript . application Ċ Ċ import Ġarrow . core . Try Ċ import Ġplay w rig kt . sk ript . Sk ript Ċ import Ġplay w rig kt . sk ript . config . Config Value Ċ import Ġplay w rig kt . sk ript . ex . lift Ċ import Ġplay w rig kt . sk ript . ex . lift Try Ċ import Ġplay w rig kt . sk ript . http . Http Ċ import Ġplay w rig kt . sk ript . http . server . HttpServer Ċ Ċ object ĠHttp Pro du ktion Manager Loader : ĠPro du ktion Manager Loader < HttpServer . Endpoint , ĠHttp Server . Request < ByteArray >, ĠHttp Server . Response , ĠAny >() Ġ{ ĊĠĠĠ Ġoverride Ġval Ġparse Rule Config : ĠSk ript < Config Value , ĠHttp Server . Endpoint , ĠSk ript Application Loader > Ġ= ĠSk ript . map Try Ġ{ Ġit . to Http Endpoint () Ġ} ĊĊĠĠĠ Ġfun ĠConfig Value . to Http Endpoint (): ĠTry < HttpServer . Endpoint > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . apply Path (" path ", Ġ". ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . text () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . apply Path (" headers ", Ġ". ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . obj ek t () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Values Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . list . map Ġ{ Ġit . text (). map Ġ{ Ġit . value Ġ} Ġ}. lift Try () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. lift () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġ Ġheaders Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . apply Path (" method ", Ġ". ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . to HttpMethod () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠHttp Server . Endpoint ( path , Ġheaders , Ġit ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠConfig Value . to HttpMethod (): ĠTry < Http . Method > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text (). map Ġ{ Ġwhen ( it . value . toLowerCase ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" get " Ġ-> ĠHttp . Method . Get ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" post " Ġ-> ĠHttp . Method . Post ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" put " Ġ-> ĠHttp . Method . Put ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" delete " Ġ-> ĠHttp . Method . Delete ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" options " Ġ-> ĠHttp . Method . Options ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" head " Ġ-> ĠHttp . Method . Head ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" trace " Ġ-> ĠHttp . Method . Trace ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" connect " Ġ-> ĠHttp . Method . Connect ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" patch " Ġ-> ĠHttp . Method . Patch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠHttp . Method . Other ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ} Ċ Ċ }