package Ġio . github . j ok or ou kw u . zephyr ng . http . test result update Ċ Ċ import Ġcom . github . kit tin un f . fuel . core . Request Factory Ċ import Ġcom . github . kit tin un f . fuel . core . await Ċ import Ġcom . github . kit tin un f . fuel . core . extensions . authentication Ċ import Ġcom . github . kit tin un f . fuel . core . extensions . json Body Ċ import Ġio . github . j ok or ou kw u . zephyr ng . config . Ze phyr Config Impl Ċ import Ġio . github . j ok or ou kw u . zephyr ng . config . Ze phyr Ng Config Loader Impl Ċ import Ġio . github . j ok or ou kw u . zephyr ng . http . Abstract Request Sender Ċ import Ġio . github . j ok or ou kw u . zephyr ng . http . Json Mapper Ċ import Ġio . github . j ok or ou kw u . zephyr ng . http . Ze phyr Exception Ċ import Ġio . github . j ok or ou kw u . zephyr ng . http . Ze phyr Response Deserializer Ċ import Ġio . github . j ok or ou kw u . zephyr ng . http . test result status . TestResult Status Ċ import Ġio . github . j ok or ou kw u . zephyr ng . up datab ler es ult . Up datable TestResult Ċ import Ġkotlinx . serialization . encode ToString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġkotlin . math . max Ċ Ċ class ĠTest Result Updater ( ĊĠĠĠ Ġze phyr Config : ĠZe phyr Config Impl Ġ= ĠZe phyr Ng Config Loader Impl . zephyr Ng Config (), ĊĠĠĠ Ġjson Mapper : ĠJson Ġ= ĠJson Mapper . instance , ĊĠĠĠ Ġrequest Factory : ĠRequest Factory . Con venience Ġ= Ġdefault Request Factory , ĊĠĠĠ Ġprivate Ġval Ġcomment Rows Formatter : ĠI Comment Row Formatter Ġ= ĠComment Row Color Formatter Ċ ) Ġ: ĠAbstract Request Sender ( zephyr Config , Ġjson Mapper , Ġrequest Factory ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġurl Ġ= Ġ"$ baseUrl / test result " ĊĊĠĠĠ Ġsuspend Ġfun Ġupdate TestResult ( ĊĠĠĠĠĠĠĠ Ġtest Cycle Key : ĠString , ĊĠĠĠĠĠĠĠ Ġstatus To Id Map : ĠMap < TestResult Status , ĠLong >, ĊĠĠĠĠĠĠĠ Ġtest Results : ĠCollection < Up datable TestResult > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Factory . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. authentication (). basic ( zephyr Config . username (), Ġze phyr Config . password ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. json Body ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Mapper . encode ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap To Serializable Test Results ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus To Id Map , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Results ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. t reat Response As Valid () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. await ( Ze phyr Response Deserializer ) ĊĠĠĠĠĠĠĠ Ġ}. getOrElse Ġ{ Ġcause Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠZe phyr Exception (" Failed Ġto Ġupdate Ġtest Ġresults Ġof Ġtest Ġrun Ġ'$ test Cycle Key '", Ġcause ) ĊĠĠĠĠĠĠĠ Ġ}. validate StatusCode Ġ{ Ġ" Failed Ġto Ġupdate Ġtest Ġresults Ġof Ġtest Ġrun Ġ'$ test Cycle Key ': Ġun successful Ġstatus Ġcode " Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġmap To Serializable Test Results ( ĊĠĠĠĠĠĠĠ Ġtest Result Status To Id Map : ĠMap < TestResult Status , ĠLong >, ĊĠĠĠĠĠĠĠ Ġup datable Test Results : ĠCollection < Up datable TestResult > ĊĠĠĠ Ġ): ĠList < Serializable TestResult > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġserial izable Test Results Ġ= ĠArrayList < Serializable TestResult >( up datable Test Results . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( up datable TestResult Ġin Ġup datable Test Results ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Result Status Ġ= Ġup datable TestResult . effective Status ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Result Status Id Ġ= Ġtest Result Status To Id Map . getValue ( test Result Status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserial izable Test Results . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSerializable TestResult ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġup datable TestResult . test Result Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Result Status Id Ġ= Ġtest Result Status Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġcomment Rows Formatter . format Comment Row ( up datable TestResult . comment Rows ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Time Ġ= Ġmax ( up datable TestResult . endTime Ġ- Ġup datable TestResult . startTime , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġserial izable Test Results ĊĠĠĠ Ġ} Ċ } Ċ