package Ġdev . cale bm iller . application . features . forecast . domain . mapper Ċ Ċ import Ġdev . cale bm iller . application . features . forecast . data . dto . open weather . Open Weather One Call Ċ import Ġdev . cale bm iller . application . features . forecast . domain . model .* Ċ import Ġkotlin . math . round ToInt Ċ Ċ fun ĠOpen Weather One Call . to DTO (): ĠFore cast DTO Ġ{ ĊĠĠĠ Ġval Ġcurrent Ġ= ĠCurrent ( ĊĠĠĠĠĠĠĠ Ġthis . current . date , ĊĠĠĠĠĠĠĠ Ġthis . current . temperature , ĊĠĠĠĠĠĠĠ Ġ" F ", ĊĠĠĠĠĠĠĠ Ġthis . current . fe els Like , ĊĠĠĠĠĠĠĠ Ġthis . current . wind Speed , ĊĠĠĠĠĠĠĠ Ġto Direction ( this . current . wind Direction ), ĊĠĠĠĠĠĠĠ Ġ" mph ", ĊĠĠĠĠĠĠĠ Ġthis . current . weather [ 0 ]. description . replace First Char Ġ{ Ġit . uppercase Char () Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġdays Ġ= Ġthis . daily . map Ġ{ Ġd Ġ-> ĊĠĠĠĠĠĠĠ ĠDay ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . date , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . date . day OfWeek . name . lowercase (). replace First Char Ġ{ Ġit . uppercase Char () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . sun rise , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . sun set , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . temperature . max , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . temperature . min , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" F ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . wind Speed , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Direction ( d . wind Direction ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" mph ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . weather [ 0 ]. description . replace First Char Ġ{ Ġit . uppercase Char () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd . humidity ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġhours Ġ= Ġthis . hourly . map Ġ{ Ġh Ġ-> ĊĠĠĠĠĠĠĠ ĠHour ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh . date , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh . temperature , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" F ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh . fe els Like , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh . wind Speed , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Direction ( h . wind Direction ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" mph ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh . weather [ 0 ]. description . replace First Char Ġ{ Ġit . uppercase Char () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh . probability Of Pre cip itation ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠFore cast DTO ("", Ġcurrent , Ġdays , Ġhours ) Ċ } Ċ Ċ // ĠConvert Ġa Ġwind Ġdirection Ġin Ġdegrees Ġto Ġa Ġstring . ĠT aken Ġfrom : Ġhttps :// stackoverflow . com / a / 6 1 0 7 7 3 2 5 Ċ private Ġfun Ġto Direction ( wind Direction : ĠDouble ): ĠString Ġ{ ĊĠĠĠ Ġval Ġdirections Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ Ġ" N ", ĊĠĠĠĠĠĠĠ Ġ" NE ", ĊĠĠĠĠĠĠĠ Ġ" E ", ĊĠĠĠĠĠĠĠ Ġ" SE ", ĊĠĠĠĠĠĠĠ Ġ" S ", ĊĠĠĠĠĠĠĠ Ġ" SW ", ĊĠĠĠĠĠĠĠ Ġ" W ", ĊĠĠĠĠĠĠĠ Ġ" NW " ĊĠĠĠ Ġ) ĊĠĠĠ Ġ// Ġsplit Ġinto Ġthe Ġ 8 Ġdirections ĊĠĠĠ Ġval Ġdegrees Ġ= Ġwind Direction Ġ* Ġ 8 Ġ/ Ġ 3 6 0 ĊĠĠĠ Ġ// Ġround Ġto Ġthe Ġnearest Ġinteger ĊĠĠĠ Ġvar Ġdirection Ġ= Ġdegrees . round ToInt () ĊĠĠĠ Ġ// Ġensure Ġit 's Ġwithin Ġ 0 - 7 ĊĠĠĠ Ġdirection Ġ= Ġ( direction Ġ+ Ġ 8 ) Ġ% Ġ 8 ĊĠĠĠ Ġreturn Ġdirections [ direction ] Ċ }