user_handler.go 2.0 KB

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