This function is exceptionally large. Everything within a switch like this also makes it quite error prone. Separating the functions out makes it easier to change a certain request implementation as well as improving code locality.