init project
This commit is contained in:
33
pkg/handlers/master_data/master_data.go
Normal file
33
pkg/handlers/master_data/master_data.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package master_data
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/google/uuid"
|
||||
"net/http"
|
||||
"os"
|
||||
"template_blueprint/internal/database"
|
||||
"template_blueprint/pkg/database/mongo"
|
||||
"template_blueprint/pkg/models/master_data"
|
||||
)
|
||||
|
||||
func InsertDataMaster(c *gin.Context) {
|
||||
master := os.Getenv("BLUEPRINT_DB_MASTER")
|
||||
var ReqInsertData master_data.ReqInsertData
|
||||
errBind := c.Bind(&ReqInsertData)
|
||||
if errBind != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"code": 400,
|
||||
})
|
||||
}
|
||||
db := database.New(master).GetDB()
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
ReqInsertData.ID = uuid.New().String()
|
||||
errInsert := mongoDB.InsertDataMaster(ReqInsertData)
|
||||
if errInsert != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"message": "Failed Insert User",
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Successfully Inserted User"})
|
||||
}
|
||||
42
pkg/handlers/mongo/mongo.go
Normal file
42
pkg/handlers/mongo/mongo.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package mongo
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"template_blueprint/internal/database"
|
||||
"template_blueprint/pkg/database/mongo"
|
||||
"template_blueprint/pkg/models/local"
|
||||
"time"
|
||||
)
|
||||
|
||||
func GetDataLog(c *gin.Context) {
|
||||
locals := os.Getenv("BLUEPRINT_DB_LOCAL")
|
||||
db := database.New(locals).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
defer cancel()
|
||||
|
||||
cursor, err := mongoDB.DB.Collection("startup_log").Find(ctx, bson.M{})
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database query failed"})
|
||||
return
|
||||
}
|
||||
|
||||
var dataLog []*local.StartUpLog
|
||||
errDecode := cursor.All(ctx, &dataLog)
|
||||
if errDecode != nil {
|
||||
log.Println(errDecode)
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database query failed"})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, dataLog)
|
||||
}
|
||||
50
pkg/handlers/patient/patient.go
Normal file
50
pkg/handlers/patient/patient.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package patient
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/google/uuid"
|
||||
"net/http"
|
||||
"os"
|
||||
"template_blueprint/internal/database"
|
||||
"template_blueprint/pkg/database/mongo"
|
||||
"template_blueprint/pkg/models/patient"
|
||||
)
|
||||
|
||||
func InsertPatient(c *gin.Context) {
|
||||
local := os.Getenv("MONGODB_DEV_LOCAL")
|
||||
db := database.New(local).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
var reqInsert *patient.Patient
|
||||
err := c.Bind(&reqInsert)
|
||||
if err != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": err.Error()})
|
||||
return
|
||||
}
|
||||
reqInsert.ID = uuid.New().String()
|
||||
errInsert := mongoDB.InsertPatient(reqInsert)
|
||||
if errInsert != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": errInsert.Error()})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Patient successfully inserted"})
|
||||
}
|
||||
|
||||
func GetAllPatient(c *gin.Context) {
|
||||
local := os.Getenv("MONGODB_DEV_LOCAL")
|
||||
db := database.New(local).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
dataPatient, errSelect := mongoDB.GetAllDataPatient()
|
||||
if errSelect != nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": errSelect.Error()})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, dataPatient)
|
||||
}
|
||||
168
pkg/handlers/user/user.go
Normal file
168
pkg/handlers/user/user.go
Normal file
@@ -0,0 +1,168 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/google/uuid"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"template_blueprint/internal/database"
|
||||
"template_blueprint/pkg/database/mongo"
|
||||
"template_blueprint/pkg/models/user"
|
||||
)
|
||||
|
||||
// InsertUser godoc
|
||||
// @Summary Insert a new user
|
||||
// @Description Adds a new user to the database
|
||||
// @Tags users
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param request body user.ReqInsertUser true "User Data"
|
||||
// @Success 200 {object} map[string]string "Successfully Inserted User"
|
||||
// @Failure 400 {object} map[string]string "Bad Request"
|
||||
// @Failure 500 {object} map[string]string "Database connection failed"
|
||||
// @Router /api/localinsertuser [post]
|
||||
func InsertUser(c *gin.Context) {
|
||||
local := os.Getenv("BLUEPRINT_DB_LOCAL")
|
||||
db := database.New(local).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
var reqInsert user.ReqInsertUser
|
||||
|
||||
errBind := c.Bind(&reqInsert)
|
||||
if errBind != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"message": errBind.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
id := uuid.New().String()
|
||||
reqInsert.ID = id
|
||||
errInsert := mongoDB.InsertUser(reqInsert)
|
||||
if errInsert != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"message": errInsert.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Successfully Inserted User"})
|
||||
}
|
||||
|
||||
// GetAllUser godoc
|
||||
// @Summary Get all users
|
||||
// @Description Retrieves all users from the database
|
||||
// @Tags users
|
||||
// @Produce json
|
||||
// @Success 200 {array} user.User "List of users"
|
||||
// @Failure 500 {object} map[string]string "Database connection failed"
|
||||
// @Router /api/local/getalluser [get]
|
||||
func GetAllUser(c *gin.Context) {
|
||||
local := os.Getenv("BLUEPRINT_DB_LOCAL")
|
||||
db := database.New(local).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
dataUser, errSelect := mongoDB.GetAllDataUser()
|
||||
if errSelect != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"message": errSelect.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, dataUser)
|
||||
}
|
||||
|
||||
// GetUserByID godoc
|
||||
// @Summary Get user by ID
|
||||
// @Description Retrieves a user by their ID
|
||||
// @Tags users
|
||||
// @Produce json
|
||||
// @Param id path string true "User ID"
|
||||
// @Success 200 {object} user.User "User data"
|
||||
// @Failure 400 {object} map[string]string "Bad Request"
|
||||
// @Router /api/local/getuser/{id} [get]
|
||||
func GetUserByID(c *gin.Context) {
|
||||
local := os.Getenv("BLUEPRINT_DB_LOCAL")
|
||||
db := database.New(local).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
id := c.Param("id")
|
||||
log.Println("ID", id)
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
dataUser, errSelect := mongoDB.GetUserById(id)
|
||||
if errSelect != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"message": errSelect.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, dataUser)
|
||||
}
|
||||
|
||||
// UpdateUser godoc
|
||||
// @Summary Update a user
|
||||
// @Description Updates user information
|
||||
// @Tags users
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param request body user.User true "User Data"
|
||||
// @Success 200 {object} map[string]string "Successfully Updated User"
|
||||
// @Failure 400 {object} map[string]string "Bad Request"
|
||||
// @Failure 500 {object} map[string]string "Database connection failed"
|
||||
// @Router /users [put]
|
||||
func UpdateUser(c *gin.Context) {
|
||||
local := os.Getenv("BLUEPRINT_DB_LOCAL")
|
||||
db := database.New(local).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
var reqUpdate *user.ReqUpdateUser
|
||||
errBind := c.Bind(&reqUpdate)
|
||||
if errBind != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"message": errBind.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
log.Println("REQ UPDATE", reqUpdate)
|
||||
errUpdate := mongoDB.UpdateUser(reqUpdate)
|
||||
if errUpdate != nil {
|
||||
c.JSON(400, gin.H{
|
||||
"message": errUpdate.Error(),
|
||||
})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Successfully Updated User"})
|
||||
}
|
||||
|
||||
func DeleteUser(c *gin.Context) {
|
||||
local := os.Getenv("BLUEPRINT_DB_LOCAL")
|
||||
db := database.New(local).GetDB()
|
||||
if db == nil {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"message": "Database connection failed"})
|
||||
return
|
||||
}
|
||||
mongoDB := mongo.NewDatabaseService(db)
|
||||
var reqDelete *user.ReqDeleteUser
|
||||
errBind := c.Bind(&reqDelete)
|
||||
if errBind != nil {
|
||||
c.JSON(400, gin.H{})
|
||||
return
|
||||
}
|
||||
log.Println("REQ DELETE", reqDelete)
|
||||
errDelete := mongoDB.DeleteUserById(reqDelete.ID)
|
||||
if errDelete != nil {
|
||||
c.JSON(400, gin.H{"message": "Failed to Delete User"})
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{"message": "Successfully Deleted User"})
|
||||
}
|
||||
Reference in New Issue
Block a user