package Ġcom . ed t . ut 3 . backend . requests . cel cat Ċ Ċ import Ġcom . ed t . ut 3 . backend . formation _ choice . School Ċ import Ġcom . ed t . ut 3 . misc . extensions . from HTML Ċ import Ġkotlinx . serialization . K Serializer Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġkotlinx . serialization . builtins . List Serializer Ċ import Ġkotlinx . serialization . builtins . Map Serializer Ċ import Ġkotlinx . serialization . builtins . serializer Ċ import Ġkotlinx . serialization . descriptors . Primitive Kind Ċ import Ġkotlinx . serialization . descriptors . Primitive Serial Descriptor Ċ import Ġkotlinx . serialization . descriptors . Serial Descriptor Ċ import Ġkotlinx . serialization . encoding . Decoder Ċ import Ġkotlinx . serialization . encoding . Encoder ĊĊ Ċ @ Serializable Ċ data Ġclass ĠCour ses Request ( ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠCourse Serializer :: class ) ĊĠĠĠ Ġval Ġresults : ĠMap < String , ĠString > Ċ ) Ċ Ċ object ĠCourse Serializer : ĠK Serializer < Map < String , ĠString >> Ġ{ ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġprivate Ġdata Ġclass ĠJson Course ( val Ġid : ĠString , Ġval Ġtext : ĠString ) ĊĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPrimitive Serial Descriptor (" Course ", ĠPrimitive Kind . STRING ) ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠMap < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserializer Ġ= ĠList Serializer ( Json Course . serializer ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdecoder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. decode Serializable Value ( serializer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ( listOf < Pair < String , ĠString >> ()) Ġ{ Ġacc , Ġjson Course Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc Ġ+ Ġ( json Course . id Ġto Ġjson Course . text ) Ġ+ Ġ( json Course . text Ġto Ġjson Course . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toMap () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠMap < String , ĠString >) Ġ{ ĊĠĠĠĠĠĠĠ Ġencoder . encode Serializable Value ( Map Serializer ( String . serializer (), ĠString . serializer ()), Ġvalue ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠClasses Request ( ĊĠĠĠ Ġ@ Serializable ( with Ġ= ĠClass Serializer :: class ) ĊĠĠĠ Ġval Ġresults : ĠList < String > Ċ ) Ċ Ċ object ĠClass Serializer : ĠK Serializer < List < String >> Ġ{ ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġprivate Ġdata Ġclass ĠJson Class ( val Ġid : ĠString ) ĊĊĠĠĠ Ġoverride Ġval Ġdescriptor : ĠSerial Descriptor ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠPrimitive Serial Descriptor (" Class ", ĠPrimitive Kind . STRING ) ĊĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġserializer Ġ= ĠList Serializer ( Json Class . serializer ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdecoder . decode Serializable Value ( serializer ). map Ġ{ Ġit . id . from HTML (). trim () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġencoder . encode Serializable Value ( List Serializer ( String . serializer ()), Ġvalue Ġ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠSch ools Request ( val Ġentries : ĠList < School >) Ċ Ċ @ Serializable Ċ data Ġclass ĠGroups Request ( val Ġresults : ĠList < School . Info . Group >)