func CreateClient(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "application/json; charset=utf-8")

	var newClient models.NewClient

	body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1048676))

	if err != nil {
		panic(err)
	}

	if err := r.Body.Close(); err != nil {
		panic(err)
	}

	if err := json.Unmarshal(body, &newClient); err != nil {
		message := models.APIMessage{"Input format invalid"}
		json.NewEncoder(w).Encode(message)
	} else {
		var client models.Client
		client.Name = newClient.Name
		client.GenerateKeys()

		database.DB.Create(&client)

		if database.DB.NewRecord(client) {
			message := models.APIMessage{"Error creating client"}

			json.NewEncoder(w).Encode(message)
		} else {
			json.NewEncoder(w).Encode(client)
		}
	}
}
func UpdateClient(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "application/json; charset=utf-8")

	urlParams := mux.Vars(r)
	strID := urlParams["id"]
	client := models.Client{}
	var newClient models.NewClient

	id, err := strconv.Atoi(strID)
	if err != nil {
		// handle error
		message := models.APIMessage{"Id format invalid"}
		json.NewEncoder(w).Encode(message)
	} else {

		database.DB.First(&client, id)

		if client.ID == 0 {
			message := models.APIMessage{"Client not found"}
			json.NewEncoder(w).Encode(message)
		} else {

			body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1048676))

			if err != nil {
				panic(err)
			}

			if err := r.Body.Close(); err != nil {
				panic(err)
			}

			if err := json.Unmarshal(body, &newClient); err != nil {
				message := models.APIMessage{"Input format invalid"}
				json.NewEncoder(w).Encode(message)
			} else {
				client.Name = newClient.Name

				database.DB.Save(&client)

				json.NewEncoder(w).Encode(client)
			}
		}
	}
}