mirror of
https://github.com/khairul169/vaulterm.git
synced 2025-04-29 00:59:40 +07:00
53 lines
955 B
Go
53 lines
955 B
Go
package keychains
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"rul.sh/vaulterm/models"
|
|
"rul.sh/vaulterm/utils"
|
|
)
|
|
|
|
func Router(app *fiber.App) {
|
|
router := app.Group("/keychains")
|
|
|
|
router.Get("/", getAll)
|
|
router.Post("/", create)
|
|
}
|
|
|
|
func getAll(c *fiber.Ctx) error {
|
|
repo := NewKeychainsRepository()
|
|
rows, err := repo.GetAll()
|
|
if err != nil {
|
|
return utils.ResponseError(c, err, 500)
|
|
}
|
|
|
|
return c.JSON(fiber.Map{
|
|
"rows": rows,
|
|
})
|
|
}
|
|
|
|
func create(c *fiber.Ctx) error {
|
|
var body CreateKeychainSchema
|
|
if err := c.BodyParser(&body); err != nil {
|
|
return utils.ResponseError(c, err, 500)
|
|
}
|
|
|
|
repo := NewKeychainsRepository()
|
|
|
|
item := &models.Keychain{
|
|
Type: body.Type,
|
|
Label: body.Label,
|
|
}
|
|
|
|
if err := item.EncryptData(body.Data); err != nil {
|
|
return utils.ResponseError(c, err, 500)
|
|
}
|
|
|
|
if err := repo.Create(item); err != nil {
|
|
return utils.ResponseError(c, err, 500)
|
|
}
|
|
|
|
return c.Status(http.StatusCreated).JSON(item)
|
|
}
|