package handlers import ( database "app/database" "app/models" "app/repositories" "net/http" "strconv" "github.com/labstack/echo/v4" ) // Create(p *models.Phone) error // GetPhones(id uint) (*models.Phone, error) // UpdatePhoneNumber(number string, id uint) error // UpdateCellPhone(number string, id uint) error // Delete(id uint) error func initPhone() *repositories.Phone_repository { db := database.Db() phoneRepository := new(repositories.Phone_repository) phoneRepository.DB = &db return phoneRepository } func CreatePhone(c echo.Context) error { phone := new(models.Phone) if err := c.Bind(phone); err != nil { panic(err) } phonerepository := initPhone() err := phonerepository.Create(phone) if err != nil { panic(err) } return c.JSON(http.StatusCreated, phone) } func GetUserPhoneNumbers(c echo.Context) error { id, err := strconv.Atoi(c.Param("id")) if err != nil { panic(err) } phonerepository := initPhone() phone, err := phonerepository.GetPhones(uint(id)) if err != nil { panic(err) } return c.JSON(http.StatusAccepted, phone) } func UpdatePhoneNumber(c echo.Context) error { id, err := strconv.Atoi(c.Param("id")) if err != nil { panic(err) } var update struct { NewNumber string `json:"phonenumber"` } phone := initPhone() if update.NewNumber != "" { err = phone.UpdatePhoneNumber(update.NewNumber, uint(id)) if err != nil { panic(err) } } return c.String(http.StatusAccepted, "updated") } func UpdateCellPhoneNumber(c echo.Context) error { id, err := strconv.Atoi(c.Param("id")) if err != nil { panic(err) } var update struct { NewNumber string `json:"cellphonenumber"` } phone := initPhone() if update.NewNumber != "" { err = phone.UpdateCellPhone(update.NewNumber, uint(id)) if err != nil { panic(err) } } return c.String(http.StatusAccepted, "updated") } func DeletePhone(c echo.Context) error { id, err := strconv.Atoi(c.Param("id")) if err != nil { panic(err) } phone := initPhone() err = phone.Delete(uint(id)) if err != nil { panic(err) } return c.String(http.StatusAccepted, "removed") }