package Ġio . mor fly . server . data Ċ Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . client . statement .* Ċ import Ġio . ktor . http .* Ċ import Ġio . mor fly . server . DATABASE _ SERVICE _ ENDPOINT Ċ import Ġio . mor fly . server . domain .* ĊĊ Ċ class ĠInternal Posts Repository ( ĊĠĠĠ Ġprivate Ġval Ġclient : ĠHttpClient Ċ ) Ġ: ĠPosts Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġlist Posts ( include Comments : ĠBoolean ): ĠList < Post > Ġ= ĊĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post ? include Comments =$ include Comments ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Get ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Post ( post Id : ĠString , Ġinclude Comments : ĠBoolean ): ĠPost ? Ġ= ĊĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post /$ post Id ? include Comments =$ include Comments ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Get ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate Post ( post : ĠNew Post ): ĠPost ? Ġ= ĊĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Post ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . ContentType , ĠContentType . Application . Json ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġpost ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Post ( post Id : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse : ĠHttpResponse Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post /$ post Id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Delete ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresponse . status Ġ== ĠHttpStatusCode . Accepted ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġlist Comments ( post Id : ĠString ): ĠList < Comment > Ġ= ĊĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post /$ post Id / comment ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Get ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Comment ( comment Id : ĠString ): ĠComment ? Ġ= ĊĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post / comment /$ comment Id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Get ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcreate Comment ( comment : ĠNew Comment ): ĠComment ? Ġ= ĊĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post / comment ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Post ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . ContentType , ĠContentType . Application . Json ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġcomment ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Comment ( comment Id : ĠString ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġclient . request ("$ DATABASE _ SERVICE _ ENDPOINT / rest / post / comment /$ comment Id ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Ġ= ĠHttpMethod . Delete ĊĠĠĠĠĠĠĠ Ġ} Ċ }