Skip to content

Commit

Permalink
GML clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
garrettladley committed Feb 10, 2024
1 parent fd8634a commit 158fd91
Show file tree
Hide file tree
Showing 30 changed files with 655 additions and 763 deletions.
5 changes: 0 additions & 5 deletions backend/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,6 @@ require (
gorm.io/gorm v1.25.7
)

require (
github.com/gofiber/utils v0.0.10 // indirect
github.com/gorilla/schema v1.1.0 // indirect
)

require (
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/PuerkitoBio/purell v1.1.1 // indirect
Expand Down
38 changes: 0 additions & 38 deletions backend/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/awnumar/memcall v0.2.0 h1:sRaogqExTOOkkNwO9pzJsL8jrOV29UuUW7teRMfbqtI=
Expand Down Expand Up @@ -44,15 +43,6 @@ github.com/go-playground/validator/v10 v10.17.0 h1:SmVVlfAOtlZncTxRuinDPomC2DkXJ
github.com/go-playground/validator/v10 v10.17.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/gofiber/fiber v1.14.6 h1:QRUPvPmr8ijQuGo1MgupHBn8E+wW0IKqiOvIZPtV70o=
github.com/gofiber/fiber v1.14.6/go.mod h1:Yw2ekF1YDPreO9V6TMYjynu94xRxZBdaa8X5HhHsjCM=
github.com/gofiber/fiber/v2 v2.50.0/go.mod h1:21eytvay9Is7S6z+OgPi7c7n4++tnClWmhpimVHMimw=
github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE=
github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
github.com/gofiber/swagger v0.1.14 h1:o524wh4QaS4eKhUCpj7M0Qhn8hvtzcyxDsfZLXuQcRI=
github.com/gofiber/swagger v0.1.14/go.mod h1:DCk1fUPsj+P07CKaZttBbV1WzTZSQcSxfub8y9/BFr8=
github.com/gofiber/utils v0.0.10 h1:3Mr7X7JdCUo7CWf/i5sajSaDmArEDtti8bM1JUVso2U=
github.com/gofiber/utils v0.0.10/go.mod h1:9J5aHFUIjq0XfknT4+hdSMG6/jzfaAgCu4HEbWDeBlo=
github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE=
github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ=
github.com/gofiber/swagger v1.0.0 h1:BzUzDS9ZT6fDUa692kxmfOjc1DZiloLiPK/W5z1H1tc=
Expand All @@ -79,9 +69,6 @@ github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM=
github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
Expand All @@ -99,12 +86,8 @@ github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA=
github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
Expand Down Expand Up @@ -157,11 +140,8 @@ github.com/swaggo/swag v1.16.3 h1:PnCYjPCah8FK4I26l2F/KQ4yz3sILcVUN3cTlBFA9Pg=
github.com/swaggo/swag v1.16.3/go.mod h1:DImHIuOFXKpMFAQjcC7FG4m3Dg4+QuUgUzJmKjI/gRk=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.16.0/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA=
github.com/valyala/fasthttp v1.50.0/go.mod h1:k2zXd82h/7UZc3VOdJ2WaUqt1uZ/XpXAfE9i+HBC3lA=
github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA=
github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g=
github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio=
github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8=
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
Expand All @@ -175,24 +155,6 @@ golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqR
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo=
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
Expand Down
115 changes: 0 additions & 115 deletions backend/src/controllers/club.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ func NewClubController(clubService services.ClubServiceInterface) *ClubControlle
return &ClubController{clubService: clubService}
}


func (cl *ClubController) GetAllClubs(c *fiber.Ctx) error {
defaultLimit := 10
defaultPage := 1
Expand All @@ -30,7 +29,6 @@ func (cl *ClubController) GetAllClubs(c *fiber.Ctx) error {
return c.Status(fiber.StatusOK).JSON(clubs)
}


func (cl *ClubController) CreateClub(c *fiber.Ctx) error {
var clubBody models.CreateClubRequestBody
if err := c.BodyParser(&clubBody); err != nil {
Expand All @@ -54,7 +52,6 @@ func (cl *ClubController) GetClub(c *fiber.Ctx) error {
return c.Status(fiber.StatusOK).JSON(club)
}


func (cl *ClubController) UpdateClub(c *fiber.Ctx) error {
var clubBody models.UpdateClubRequestBody

Expand All @@ -78,115 +75,3 @@ func (cl *ClubController) DeleteClub(c *fiber.Ctx) error {

return c.SendStatus(fiber.StatusNoContent)
}

// GetContact returns a contact by ID.
//
// @Summary Get a contact by ID
// @Description Get a contact by its ID
// @ID get-contact
// @Tags club
// @Produce json
// @Param id path string true "Contact ID"
// @Success 200 {object} models.Contact
// @Failure 400 {string} string "failed to get contact"
// @Router /api/v1/contacts/{id} [get]
func (l *ClubController) GetContact(c *fiber.Ctx) error {
contact, err := l.clubService.GetContact(c.Params("id"))
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contact)
}

// GetContacts returns all contacts.
//
// @Summary Get all contacts
// @Description Get all contacts with pagination support
// @ID get-all-contacts
// @Tags club
// @Produce json
// @Param limit query int false "Number of contacts per page"
// @Param page query int false "Page number"
// @Success 200 {object} []models.Contact
// @Failure 400 {string} string "failed to get contacts"
// @Router /api/v1/contacts/ [get]
func (l *ClubController) GetContacts(c *fiber.Ctx) error {
defaultLimit := 10
defaultPage := 1

contacts, err := l.clubService.GetContacts(c.Query("limit", strconv.Itoa(defaultLimit)), c.Query("page", strconv.Itoa(defaultPage)))
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contacts)
}

// GetClubContacts returns all contacts of a club.
//
// @Summary Get all contacts of a club
// @Description Get all contacts of a club with pagination support
// @ID get-club-contacts
// @Tags club
// @Produce json
// @Param id path string true "Club ID"
// @Success 200 {object} []models.Contact
// @Failure 400 {string} string "failed to get club contacts"
// @Router /api/v1/clubs/{id}/contacts [get]
func (l *ClubController) GetClubContacts(c *fiber.Ctx) error {
contacts, err := l.clubService.GetClubContacts(c.Params("id"))
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contacts)
}

// PutContact creates or updates a contact for a club.
//
// @Summary Create or update a contact for a club
// @Description Creates a contact for a club if it does not exist, otherwise updates an existing contact
// @ID put-contact
// @Tags club
// @Accept json
// @Produce json
// @Param id path string true "Club ID"
// @Param contactBody body models.PutContactRequestBody true "Contact details"
// @Success 200 {object} models.Contact
// @Failure 400 {string} string "failed to create/update contact"
// @Router /api/v1/clubs/{id}/contacts [put]
func (l *ClubController) PutContact(c *fiber.Ctx) error {
var contactBody models.PutContactRequestBody

if err := c.BodyParser(&contactBody); err != nil {
return errors.FailedToParseRequestBody.FiberError(c)
}

contact, err := l.clubService.PutContact(c.Params("id"), contactBody)
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contact)
}

// DeleteContact deletes a contact by ID.
//
// @Summary Delete a contact by ID
// @Description Delete a contact by its ID
// @ID delete-contact
// @Tags club
// @Produce json
// @Param id path string true "Contact ID"
// @Success 204 - No Content
// @Failure 400 {string} string "failed to delete contact"
// @Router /api/v1/contacts/{id} [delete]
func (l *ClubController) DeleteContact(c *fiber.Ctx) error {
err := l.clubService.DeleteContact(c.Params("id"))
if err != nil {
return err.FiberError(c)
}

return c.SendStatus(fiber.StatusNoContent)
}
40 changes: 40 additions & 0 deletions backend/src/controllers/club_contact.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package controllers

import (
"github.com/GenerateNU/sac/backend/src/errors"
"github.com/GenerateNU/sac/backend/src/models"
"github.com/GenerateNU/sac/backend/src/services"
"github.com/gofiber/fiber/v2"
)

type ClubContactController struct {
clubContactService services.ClubContactServiceInterface
}

func NewClubContactController(clubContactService services.ClubContactServiceInterface) *ClubContactController {
return &ClubContactController{clubContactService: clubContactService}
}

func (cc *ClubContactController) GetClubContacts(c *fiber.Ctx) error {
contacts, err := cc.clubContactService.GetClubContacts(c.Params("clubID"))
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contacts)
}

func (cc *ClubContactController) PutContact(c *fiber.Ctx) error {
var contactBody models.PutContactRequestBody

if err := c.BodyParser(&contactBody); err != nil {
return errors.FailedToParseRequestBody.FiberError(c)
}

contact, err := cc.clubContactService.PutClubContact(c.Params("clubID"), contactBody)
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contact)
}
46 changes: 46 additions & 0 deletions backend/src/controllers/contact.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package controllers

import (
"strconv"

"github.com/GenerateNU/sac/backend/src/services"
"github.com/gofiber/fiber/v2"
)

type ContactController struct {
contactService services.ContactServiceInterface
}

func NewContactController(contactService services.ContactServiceInterface) *ContactController {
return &ContactController{contactService: contactService}
}

func (co *ContactController) GetContact(c *fiber.Ctx) error {
contact, err := co.contactService.GetContact(c.Params("contactID"))
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contact)
}

func (co *ContactController) GetContacts(c *fiber.Ctx) error {
defaultLimit := 10
defaultPage := 1

contacts, err := co.contactService.GetContacts(c.Query("limit", strconv.Itoa(defaultLimit)), c.Query("page", strconv.Itoa(defaultPage)))
if err != nil {
return err.FiberError(c)
}

return c.Status(fiber.StatusOK).JSON(contacts)
}

func (co *ContactController) DeleteContact(c *fiber.Ctx) error {
err := co.contactService.DeleteContact(c.Params("contactID"))
if err != nil {
return err.FiberError(c)
}

return c.SendStatus(fiber.StatusNoContent)
}
28 changes: 1 addition & 27 deletions backend/src/errors/club.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,33 +35,7 @@ var (
StatusCode: fiber.StatusNotFound,
Message: "club not found",
}
FailedToGetContacts = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to get contacts",
}
FailedToGetContact = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to get contact",
}
ContactNotFound = Error{
StatusCode: fiber.StatusNotFound,
Message: "contact not found",
}
FailedToCreateContact = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to create contact",
}
FailedToUpdateContact = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to update contact",
}
FailedToDeleteContact = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to delete contact",
}
FailedToValidateContact = Error{
StatusCode: fiber.StatusBadRequest,
Message: "failed to validate contact",

FailedtoGetAdminIDs = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to get admin ids",
Expand Down
30 changes: 30 additions & 0 deletions backend/src/errors/contact.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package errors

import "github.com/gofiber/fiber/v2"

var (
FailedToGetContacts = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to get contacts",
}
FailedToGetContact = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to get contact",
}
ContactNotFound = Error{
StatusCode: fiber.StatusNotFound,
Message: "contact not found",
}
FailedToPutContact = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to put contact",
}
FailedToDeleteContact = Error{
StatusCode: fiber.StatusInternalServerError,
Message: "failed to delete contact",
}
FailedToValidateContact = Error{
StatusCode: fiber.StatusBadRequest,
Message: "failed to validate contact",
}
)
Loading

0 comments on commit 158fd91

Please sign in to comment.