Skip to content

Commit

Permalink
feat: implemented updates crud
Browse files Browse the repository at this point in the history
  • Loading branch information
SohamGhugare committed Dec 22, 2023
1 parent 4a5ff6c commit 11c6511
Show file tree
Hide file tree
Showing 7 changed files with 97 additions and 12 deletions.
6 changes: 6 additions & 0 deletions api/controllers/mapRoutes.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,10 @@ func MapRoutes(r *gin.Engine) {
sponGroup.GET("/update", controllers.UpdateSponsorshipStatus)
sponGroup.DELETE("/", controllers.DeleteSponsorship)

// <---------- UPDATE ROUTES ------------->
updateGroup := v1.Group("/updates")

updateGroup.POST("/add", controllers.AddUpdate)
updateGroup.GET("/:id", controllers.GetUpdates)

}
4 changes: 2 additions & 2 deletions api/controllers/v1/sponsorship.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
func CreateSponsorship(c *gin.Context) {
var body struct {
PocID int
CompanyName string
Company string
Email string
Description string
Status string
Expand All @@ -26,7 +26,7 @@ func CreateSponsorship(c *gin.Context) {

spon := tables.Sponsorships{
PocID: body.PocID,
CompanyName: body.CompanyName,
CompanyName: body.Company,
CurrentEmail: body.Email,
Description: body.Description,
Status: body.Status,
Expand Down
54 changes: 54 additions & 0 deletions api/controllers/v1/updates.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package controllers

import (
"net/http"
"strconv"
"time"

database "github.com/GDGVIT/gibspons-backend/database/dbops"
"github.com/GDGVIT/gibspons-backend/database/tables"
"github.com/GDGVIT/gibspons-backend/utility"
"github.com/gin-gonic/gin"
)

func AddUpdate(c *gin.Context) {
var body struct {
ID int
Status string
Email string
}

if err := c.Bind(&body); err != nil {
utility.GinCtxError(c, "Failed to add update, check body")
return
}

update := tables.Updates{
SponsorshipsID: uint(body.ID),
Email: body.Email,
Status: body.Status,
UpdatedAt: time.Now(),
}

if err := database.AddUpdate(&update); err != nil {
utility.GinCtxError(c, "Failed to add update, check db logs: "+err.Error())
return
}

c.JSON(http.StatusOK, gin.H{
"update": update,
})
}

func GetUpdates(c *gin.Context) {
id := c.Param("id")
idInt, _ := strconv.Atoi(id)
updates, err := database.GetUpdates(idInt)
if err != nil {
utility.GinCtxError(c, err.Error())
return
}
c.JSON(http.StatusOK, gin.H{
"updates": updates,
})
}
17 changes: 17 additions & 0 deletions api/database/dbops/updates.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package database

import (
"github.com/GDGVIT/gibspons-backend/database"
"github.com/GDGVIT/gibspons-backend/database/tables"
)

func AddUpdate(u *tables.Updates) error {
tx := database.DB.Create(u)
return tx.Error
}

func GetUpdates(id int) ([]tables.Updates, error) {
var updates []tables.Updates
tx := database.DB.Find(&updates, "sponsorships_id = ?", id)
return updates, tx.Error
}
4 changes: 4 additions & 0 deletions api/database/migrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@ import (
func AutoMigrate() {
var users tables.Users
var sponsorships tables.Sponsorships
var updates tables.Updates

db := DB

if err := db.AutoMigrate(&users); err != nil {
log.Fatal("[MIGRATOR] Users Migration Failed")
}
if err := db.AutoMigrate(&updates); err != nil {
log.Fatal("[MIGRATOR] Updates Migration Failed")
}

if err := db.AutoMigrate(&sponsorships); err != nil {
log.Fatal("[MIGRATOR] Sponsorships Migration Failed")
Expand Down
14 changes: 7 additions & 7 deletions api/database/tables/sponsorships.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package tables

type Sponsorships struct {
ID int `gorm:"column:id;primaryKey;autoIncrement"`
PocID int `gorm:"column:poc_id;not null"`
CompanyName string `gorm:"column:company_name;type:varchar(100)"`
CurrentEmail string `gorm:"column:email;type:varchar(100)"`
Status string `gorm:"column:status;not null;type:varchar(100)"`
Description string `gorm:"column:description;type:varchar(500)"`
Updates []Updates `gorm:"column:updates"`
ID int `gorm:"column:id;primaryKey;autoIncrement"`
PocID int `gorm:"column:poc_id;not null"`
CompanyName string `gorm:"column:company;type:varchar(100)"`
CurrentEmail string `gorm:"column:email;type:varchar(100)"`
Status string `gorm:"column:status;not null;type:varchar(100)"`
Description string `gorm:"column:description;type:varchar(500)"`
Updates []Updates
}
10 changes: 7 additions & 3 deletions api/database/tables/updates.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package tables

import "time"

type Updates struct {
ID int `gorm:"column:id;primaryKey;autoIncrement"`
Status string `gorm:"column:status;not null;type:varchar(50)"`
Email string `gorm:"column:email;unique;type:varchar(100)"`
ID int `gorm:"column:id;primaryKey;autoIncrement"`
SponsorshipsID uint `gorm:"column:sponsorships_id"`
Status string `gorm:"column:status;not null;type:varchar(50)"`
Email string `gorm:"column:email;unique;type:varchar(100)"`
UpdatedAt time.Time `gorm:"column:updated_at"`
}

0 comments on commit 11c6511

Please sign in to comment.