mssqlservercrudoperations.go 2.42 KiB
Newer Older
Somnath Ghorpade's avatar
Somnath Ghorpade committed
package mssqlservercrudoperations

import (
	"golangtemplate/servers/app/models"

	"corelab.mkcl.org/MKCLOS/coredevelopmentplatform/corepkgv2/dalmdl/sqlserver"
	"github.com/gin-gonic/gin"
)

func ReadDataFromMSSQLServer(c *gin.Context) {

	//get default connection
	sqlServerDAO := sqlserver.GetSQLServerDAO()

	//You can use also use below method for connection, if you want use database other than default db
	// sqlServerDAO := sqlserver.GetSQLServerDAOWithHost("SQLServerHostDummy")

	employees, err := sqlServerDAO.SelectQuery("select * from Employees")
	if err != nil {
		c.JSON(500, gin.H{
			"error": err.Error(),
		})
	}
	c.JSON(200, gin.H{
		"employees": employees.Value(),
	})
}

func WriteDataToMSSQLServer(c *gin.Context) {
	var emp models.Employee
	if err := c.Bind(&emp) != nil; err {
		c.JSON(400, gin.H{
			"error": err,
		})
	}
	sqlServerDAO := sqlserver.GetSQLServerDAO()

	_, err := sqlServerDAO.ExecQuery("insert into Employees values (?,?)", emp.Name, emp.Location)
	if err != nil {
		c.JSON(500, gin.H{
			"error": err.Error(),
		})
	}
	employees, err := sqlServerDAO.SelectQuery("select * from Employees")
	if err != nil {
		c.JSON(500, gin.H{
			"error": err.Error(),
		})
	}
	c.JSON(200, gin.H{
		"status":    "inserted",
		"employees": employees.Value(),
	})
}

func UpdateMSSQLServerData(c *gin.Context) {
	var emp models.Employee
	if err := c.Bind(&emp) != nil; err {
		c.JSON(400, gin.H{
			"error": err,
		})
	}
	sqlServerDAO := sqlserver.GetSQLServerDAO()

	_, err := sqlServerDAO.ExecQuery("update Employees set location=? where name=?", emp.Location, emp.Name)
	if err != nil {
		c.JSON(500, gin.H{
			"error": err.Error(),
		})
	}
	employees, err := sqlServerDAO.SelectQuery("select * from Employees")
	if err != nil {
		c.JSON(500, gin.H{
			"error": err.Error(),
		})
	}
	c.JSON(200, gin.H{
		"status":    "Updated",
		"employees": employees.Value(),
	})
}

func DeleteDataFromMSSQLServer(c *gin.Context) {
	var emp models.Employee
	if err := c.Bind(&emp) != nil; err {
		c.JSON(400, gin.H{
			"error": err,
		})
	}
	sqlServerDAO := sqlserver.GetSQLServerDAO()
	_, err := sqlServerDAO.ExecQuery("delete from Employees where name=?", emp.Name)
	if err != nil {
		c.JSON(500, gin.H{
			"error": err.Error(),
		})
	}
	employees, err := sqlServerDAO.SelectQuery("select * from Employees")
	if err != nil {
		c.JSON(500, gin.H{
			"error": err.Error(),
		})
	}
	c.JSON(200, gin.H{
		"status":    "DELETED",
		"employees": employees.Value(),
	})
}