119 lines
2.1 KiB
Go
119 lines
2.1 KiB
Go
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")
|
|
|
|
}
|