package Ġio . project new m . shared . login Ċ Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . request .* Ċ Ċ // TODO : ĠFind Ġa Ġbetter Ġhome Ġto Ġbase ĠURL Ċ const Ġval ĠBASE _ URL Ġ= Ġ" https :// staging - new m - server . herokuapp . com " Ċ Ċ interface ĠLog In Service Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġrequest Email Confirmation Code ( email : ĠString ): ĠString ĊĠĠĠ Ġsuspend Ġfun Ġregister ( user : ĠNew User ): ĠString ĊĠĠĠ Ġsuspend Ġfun Ġlog In ( user : ĠLog In User ): ĠString Ċ } Ċ Ċ // TODO : ĠHandle ĠError ĠC ases Ċ internal Ġclass ĠLog In ServiceImpl ( ĊĠĠĠ Ġprivate Ġval ĠhttpClient : ĠHttpClient Ċ ) Ġ: ĠLog In Service Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrequest Email Confirmation Code ( email : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠhttpClient . get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl ("$ BASE _ URL / auth / code ? email =$ email ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġregister ( user : ĠNew User ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠhttpClient . put ( body Ġ= Ġuser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl ("$ BASE _ URL / v 1 / users ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġlog In ( user : ĠLog In User ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠhttpClient . post ( body Ġ= Ġuser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl ("$ BASE _ URL / login ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ