user_handler.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package api
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "net/http"
  6. "github.com/porter-dev/porter/internal/queries"
  7. "github.com/porter-dev/porter/internal/models"
  8. )
  9. // HandleCreateUser is majestic
  10. func (app *App) HandleCreateUser(w http.ResponseWriter, r *http.Request) {
  11. form := &models.CreateUserForm{}
  12. if err := json.NewDecoder(r.Body).Decode(form); err != nil {
  13. app.logger.Warn().Err(err).Msg("")
  14. w.WriteHeader(http.StatusUnprocessableEntity)
  15. fmt.Fprintf(w, `{"error": "%v"}`, appErrFormDecodingFailure)
  16. return
  17. }
  18. userModel, err := form.ToUser()
  19. if err != nil {
  20. app.logger.Warn().Err(err).Msg("")
  21. w.WriteHeader(http.StatusUnprocessableEntity)
  22. fmt.Fprintf(w, `{"error": "%v"}`, appErrFormDecodingFailure)
  23. return
  24. }
  25. user, err := queries.CreateUser(app.db, userModel)
  26. if err != nil {
  27. app.logger.Warn().Err(err).Msg("")
  28. w.WriteHeader(http.StatusInternalServerError)
  29. fmt.Fprintf(w, `{"error": "%v"}`, appErrDataCreationFailure)
  30. return
  31. }
  32. app.logger.Info().Msgf("New user created: %d", user.ID)
  33. w.WriteHeader(http.StatusCreated)
  34. }
  35. // HandleReadUser is majestic
  36. func (app *App) HandleReadUser(w http.ResponseWriter, r *http.Request) {
  37. w.WriteHeader(http.StatusOK)
  38. w.Write([]byte("{}"))
  39. }
  40. // HandleUpdateUser is majestic
  41. func (app *App) HandleUpdateUser(w http.ResponseWriter, r *http.Request) {
  42. w.WriteHeader(http.StatusAccepted)
  43. }
  44. // HandleDeleteUser is majestic
  45. func (app *App) HandleDeleteUser(w http.ResponseWriter, r *http.Request) {
  46. w.WriteHeader(http.StatusAccepted)
  47. }
  48. // GenerateUser creates a new user based on a unique ID and a kubeconfig
  49. // func GenerateUser(id string, kubeconfig []byte) *User {
  50. // conf := kubernetes.KubeConfig{}
  51. // err := yaml.Unmarshal(kubeconfig, &conf)
  52. // // TODO -- HANDLE ERROR
  53. // if err != nil {
  54. // fmt.Println("ERROR IN UNMARSHALING")
  55. // }
  56. // // generate the user's clusters
  57. // clusters := conf.ToClusterConfigs()
  58. // return &User{
  59. // ID: id,
  60. // Clusters: clusters,
  61. // RawKubeConfig: kubeconfig,
  62. // }
  63. // }
  64. // // printUser is a helper function to print a user's config without sensitive information
  65. // func (u *User) printUser() {
  66. // for _, cluster := range u.Clusters {
  67. // fmt.Println(cluster.Name, cluster.Context, cluster.Server, cluster.User)
  68. // }
  69. // }