/** Ċ * ĠMy work out ĠAPI Ċ * ĠDocumentation Ġfor ĠMy work out ĠAPI Ġ 2 . Ġ ĠBasic Ġconcepts Ġare Ġexplained Ġin Ġthis Ġsection . Ġ Ġ# ĠLocalization ĠThe ĠAPI Ġsupports Ġlocalization Ġfor Ġerror Ġmessages Ġlike Ġvalidation Ġerrors . ĠThe Ġpreferred Ġway Ġto Ġrequest Ġlanguage Ġis Ġto Ġset Ġproper Ġ` Accept - Language ` Ġheader , Ġbut Ġthis Ġcan Ġbe Ġover rid en Ġby Ġadding Ġa Ġ` lang ` Ġquery Ġparameter Ġto Ġthe Ġrequest . Ġ Ġ- Ġ_ Example Ġ 1 _: Ġ` Accept - Language : Ġno ` Ġ- Ġ_ Example Ġ 2 _: Ġ` en - GB , en - US ; q = 0 . 9 , en ; q = 0 . 8 ` Ġ Ċ * Ċ * ĠThe Ġversion Ġof Ġthe ĠOpenAPI Ġdocument : Ġ<%= ĠENV [\" API _ VERSION \"] Ġ%> Ċ * Ġ Ċ * Ċ * ĠNOTE : ĠThis Ġclass Ġis Ġauto Ġgenerated Ġby ĠOpenAPI ĠGenerator Ġ( https :// openapi - generator . tech ). Ċ * Ġhttps :// openapi - generator . tech Ċ * ĠDo Ġnot Ġedit Ġthe Ġclass Ġmanually . Ċ */ Ċ package Ġcom . my work out . kotlin . api . apis Ċ Ċ import Ġcom . my work out . kotlin . api . models . Create ServiceProvider Connect Response Ċ import Ġcom . my work out . kotlin . api . models . Error Ċ import Ġcom . my work out . kotlin . api . models . GetUser Services Response Ċ Ċ import Ġcom . my work out . kotlin . api . infrastructure .* Ċ import Ġio . ktor . client . request . forms . formData Ċ import Ġio . ktor . client . engine . HttpClient Engine Ċ import Ġio . ktor . client . features . json . serializer . Kotlin x Serializer Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġio . ktor . http . Parameters Builder Ċ import Ġkotlinx . serialization .* Ċ import Ġkotlinx . serialization . descriptors .* Ċ import Ġkotlinx . serialization . encoding .* Ċ Ċ class ĠService Provider Api ( ĊĠĠĠ ĠbaseUrl : ĠString Ġ= ĠApi Client . BASE _ URL , ĊĠĠĠ ĠhttpClient Engine : ĠHttpClient Engine ? Ġ= Ġnull , ĊĠĠĠ Ġjson Serializer : ĠJson Ċ ) Ġ: ĠApi Client ( baseUrl , ĠhttpClient Engine , Ġjson Serializer ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠĊĠĠĠĠ Ġ* ĠĊĠĠĠĠ Ġ* Ġ@ param Ġservice Provider ĠĠĊĠĠĠĠ Ġ* Ġ@ return Ġvoid ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsuspend Ġfun Ġdelete UserService ( service Provider : Ġkotlin . String ): ĠHttpResponse < Unit > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Auth Names Ġ= ĠlistOf < String >(" JWT Auth ", Ġ" OAuth 2 ", Ġ" OAuth 2 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Body Ġ= ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . ktor . client . utils . Empty Content ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Query Ġ= Ġmutable Map Of < String , ĠList < String >>() ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Headers Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Config Ġ= ĠRequest Config ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequestMethod . DELETE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ me / services /{ service Provider }". replace (" {" Ġ+ Ġ" service Provider " Ġ+ Ġ" }", Ġ"$ service Provider "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġlocal Variable Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġlocal Variable Headers ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Config , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Body , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Auth Names ĊĠĠĠĠĠĠĠ Ġ). wrap () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠĊĠĠĠĠ Ġ* ĠĊĠĠĠĠ Ġ* Ġ@ return ĠGetUser Services Response ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġsuspend Ġfun ĠgetUser Services (): ĠHttpResponse < GetUser Services Response > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Auth Names Ġ= ĠlistOf < String >(" JWT Auth ", Ġ" OAuth 2 ", Ġ" OAuth 2 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Body Ġ= ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . ktor . client . utils . Empty Content ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Query Ġ= Ġmutable Map Of < String , ĠList < String >>() ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Headers Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Config Ġ= ĠRequest Config ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequestMethod . GET , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ me / services ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġlocal Variable Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġlocal Variable Headers ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Config , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Body , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Auth Names ĊĠĠĠĠĠĠĠ Ġ). wrap () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠĊĠĠĠĠ Ġ* ĠĊĠĠĠĠ Ġ* Ġ@ param Ġservice Provider ĠĠĊĠĠĠĠ Ġ* Ġ@ return ĠCreate ServiceProvider Connect Response ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġsuspend Ġfun Ġservice Provider Connect ( service Provider : Ġkotlin . String ): ĠHttpResponse < Create ServiceProvider Connect Response > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Auth Names Ġ= ĠlistOf < String >(" JWT Auth ", Ġ" OAuth 2 ", Ġ" OAuth 2 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Body Ġ= ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġio . ktor . client . utils . Empty Content ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Query Ġ= Ġmutable Map Of < String , ĠList < String >>() ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Headers Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Variable Config Ġ= ĠRequest Config ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRequestMethod . POST , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ me / services /{ service Provider }/ connect ". replace (" {" Ġ+ Ġ" service Provider " Ġ+ Ġ" }", Ġ"$ service Provider "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġlocal Variable Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġlocal Variable Headers ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Config , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Body , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Variable Auth Names ĊĠĠĠĠĠĠĠ Ġ). wrap () ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ