package Ġcom . mo ham mad f ay az . hn . data . sources . network . source Ċ Ċ import Ġcom . mo ham mad f ay az . hn . data . sources . network . Response Wrapper Ċ import Ġcom . mo ham mad f ay az . hn . data . sources . network . api . H acker News API Ċ import Ġcom . mo ham mad f ay az . hn . domain . models . Api Result Ċ import Ġcom . mo ham mad f ay az . hn . domain . models . Comment Model Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠComments Network Source Ġ@ Inject Ġconstructor ( private Ġval Ġapi : ĠH acker News API ) Ġ: ĊĠ ĠBase Network Source () Ġ{ ĊĠ Ġsuspend Ġfun Ġget Comment ById ( id : ĠInt ): ĠApi Result < Comment Model > Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( val Ġfrom Network Ġ= ĠResponse Wrapper . safe Api Call Ġ{ Ġapi . get Comment ById ( id ) Ġ}) Ġ{ ĊĠĠĠĠĠ Ġis ĠResponse Wrapper . Generic Error Ġ-> ĠApi Result . ERROR ( from Network . error ) ĊĠĠĠĠĠ ĠResponse Wrapper . Network Error Ġ-> ĠApi Result . Network Error ĊĠĠĠĠĠ Ġis ĠResponse Wrapper . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( from Network . value . body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( from Network . value . body () !!. deleted ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoriginal Ġ= Ġfrom Network . value . body () !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Result . OK ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= ĠComment Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal . parent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"-", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" This Ġcomment Ġwas Ġdeleted ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠApi Result . OK ( res Ġ= Ġfrom Network . value . body () !! ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠApi Result . ERROR (" Unable Ġto Ġfetch Ġcomment ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ