140 lines
3.6 KiB
Go
140 lines
3.6 KiB
Go
package equipment
|
|
|
|
import (
|
|
"jannex/admin-dashboard-backend/modules/database"
|
|
"jannex/admin-dashboard-backend/modules/structs"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
const Base = "https://inv.ex.umbach.dev"
|
|
const apiBase = Base + "/api"
|
|
const ApiToken = "1367f15d21935e4eb540f897946fb5cd98485c3f"
|
|
|
|
func GetEquipmentDocumentation(stockItemId string, c *fiber.Ctx) error {
|
|
var documentations []structs.EquipmentDocumentation
|
|
|
|
database.DB.Where("stock_item_id = ?", stockItemId).Find(&documentations)
|
|
|
|
statusCode := 200
|
|
|
|
if len(documentations) == 0 {
|
|
// there are no documentations for this equipment on the our database
|
|
// so there will be checked on invex if the stock item exists
|
|
|
|
a := fiber.AcquireAgent()
|
|
|
|
a.Add("Authorization", "Token "+ApiToken)
|
|
|
|
req := a.Request()
|
|
req.Header.SetMethod(fiber.MethodGet)
|
|
req.SetRequestURI(apiBase + "/stock/" + stockItemId + "/")
|
|
|
|
if err := a.Parse(); err != nil {
|
|
log.Error().Msgf("Failed to parse request, err: %s", err)
|
|
return c.SendStatus(fiber.StatusInternalServerError)
|
|
}
|
|
|
|
statusCode, _, _ = a.Bytes()
|
|
|
|
if statusCode == 401 {
|
|
log.Error().Msgf("invex not authorized, statusCode: %d", statusCode)
|
|
}
|
|
|
|
if statusCode == 404 {
|
|
log.Error().Msgf("Invex stock item not found, statusCode: %d", statusCode)
|
|
}
|
|
}
|
|
|
|
return c.JSON(structs.ApiEquipmentDocumentationResponse{
|
|
Status: statusCode,
|
|
Documentations: documentations})
|
|
}
|
|
|
|
/*
|
|
func GetEquipmentDocumentation(stockItemId string, c *fiber.Ctx) error {
|
|
equipment := structs.Equipment{Id: stockItemId}
|
|
|
|
if err := database.DB.Where("id = ?", stockItemId).First(&equipment).Error; err != nil && !errors.Is(err, gorm.ErrRecordNotFound) {
|
|
log.Info().Msgf("a %s", err)
|
|
|
|
log.Error().Msgf("Failed to get equipment, err: %s", err)
|
|
return c.JSON([]structs.EquipmentDocumentation{})
|
|
|
|
}
|
|
|
|
// if equipment already exists, return the documentation
|
|
if equipment.Name != "" {
|
|
var equipmentDocumentations []structs.EquipmentDocumentation
|
|
|
|
database.DB.Where("equipment_id = ?", stockItemId).Find(&equipmentDocumentations)
|
|
|
|
return c.JSON(equipmentDocumentations)
|
|
}
|
|
|
|
// create new equipment
|
|
a := fiber.AcquireAgent()
|
|
|
|
a.Add("Authorization", "Token "+ApiToken)
|
|
|
|
req := a.Request()
|
|
req.Header.SetMethod(fiber.MethodGet)
|
|
req.SetRequestURI(apiBase + "/stock/" + stockItemId + "/")
|
|
|
|
if err := a.Parse(); err != nil {
|
|
log.Error().Msgf("Failed to parse request, err: %s", err)
|
|
return c.SendStatus(fiber.StatusInternalServerError)
|
|
}
|
|
|
|
code, body, _ := a.Bytes()
|
|
|
|
if code == 401 {
|
|
log.Error().Msgf("invex not authorized, code: %d", code)
|
|
return c.SendStatus(fiber.StatusInternalServerError)
|
|
}
|
|
|
|
if code == 404 {
|
|
log.Error().Msgf("Inven stock item not found, code: %d", code)
|
|
return c.SendStatus(fiber.StatusNotFound)
|
|
}
|
|
|
|
// parse body as json
|
|
var data map[string]interface{}
|
|
|
|
if err := json.Unmarshal(body, &data); err != nil {
|
|
log.Error().Msgf("Failed to unmarshal json, err: %s", err)
|
|
return c.SendStatus(fiber.StatusInternalServerError)
|
|
}
|
|
|
|
partDetail := data["part_detail"].(map[string]interface{})
|
|
|
|
database.DB.Create(&structs.Equipment{
|
|
Id: stockItemId,
|
|
Name: partDetail["name"].(string),
|
|
Thumbnail: partDetail["thumbnail"].(string),
|
|
})
|
|
|
|
return c.JSON([]structs.EquipmentDocumentation{})
|
|
}
|
|
*/
|
|
|
|
/*
|
|
func GetEquipment() []structs.Equipment {
|
|
var equipments []structs.Equipment
|
|
|
|
database.DB.Find(&equipments)
|
|
|
|
return equipments
|
|
}*/
|
|
|
|
/*
|
|
// return whether the scanned equipment is existing in the database
|
|
func IsEquipmentExisting(stockItemId string) bool {
|
|
var equipment structs.Equipment
|
|
|
|
database.DB.Where("id = ?", stockItemId).FirstOrCreate(&equipment)
|
|
|
|
return equipment.Id != ""
|
|
} */
|