pejhancctv/handlers/phone.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")
}