131 lines
2.9 KiB
Go
131 lines
2.9 KiB
Go
package log
|
|
|
|
import (
|
|
"fmt"
|
|
"jannex/log-manager/modules/loghandler"
|
|
"jannex/log-manager/modules/structs"
|
|
"jannex/log-manager/modules/utils"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
func AddLog(c *fiber.Ctx) error {
|
|
// swagger:operation POST /v1/log log addLog
|
|
// ---
|
|
// summary: Add a log to the log file. You can specify multiple logs at once
|
|
// consumes:
|
|
// - application/json
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - name: body
|
|
// in: body
|
|
// description: The log to add
|
|
// required: true
|
|
// schema:
|
|
// "$ref": "#/definitions/LogBody"
|
|
// responses:
|
|
// '200':
|
|
// description: Successfully added log
|
|
// '400':
|
|
// description: Invalid request body
|
|
|
|
var body structs.LogBody
|
|
|
|
if err := utils.BodyParserHelper(c, &body); err != nil {
|
|
return c.SendStatus(fiber.StatusBadRequest)
|
|
}
|
|
|
|
loghandler.AddLog(body)
|
|
|
|
return c.SendStatus(fiber.StatusOK)
|
|
}
|
|
|
|
func GetLog(c *fiber.Ctx) error {
|
|
// swagger:operation GET /v1/logs/{type} logs getLog
|
|
// ---
|
|
// summary: Get the log file for the specified type
|
|
// consumes:
|
|
// - application/json
|
|
// produces:
|
|
// - application/json
|
|
// parameters:
|
|
// - name: type
|
|
// in: path
|
|
// description: The type of log to get
|
|
// required: true
|
|
// type: string
|
|
// - name: d
|
|
// in: query
|
|
// description: The date of the log to get
|
|
// required: false
|
|
// type: string
|
|
// - name: f
|
|
// in: query
|
|
// description: The filter to apply to the log
|
|
// required: false
|
|
// type: string
|
|
// responses:
|
|
// '200':
|
|
// description: Successfully got log. Returns an array of strings
|
|
// '400':
|
|
// description: Invalid request body
|
|
// '422':
|
|
// description: No log file found for the specified type or date
|
|
|
|
var params structs.GetLogParams
|
|
|
|
if err := utils.ParamsParserHelper(c, ¶ms); err != nil {
|
|
return c.SendStatus(fiber.StatusBadRequest)
|
|
}
|
|
|
|
var query structs.GetLogQuery
|
|
|
|
if err := utils.QueryParserHelper(c, &query); err != nil {
|
|
return c.SendStatus(fiber.StatusBadRequest)
|
|
}
|
|
|
|
fmt.Println("params", params, "query", query)
|
|
|
|
// no type specified
|
|
if params.Type == "" {
|
|
return c.SendStatus(fiber.StatusBadRequest)
|
|
}
|
|
|
|
// no date specified -> return all available files
|
|
if query.D == "" {
|
|
availableLogs, err := loghandler.GetAvailableLogFiles(params.Type)
|
|
|
|
if err != nil {
|
|
return c.SendStatus(fiber.StatusUnprocessableEntity)
|
|
}
|
|
|
|
return c.JSON(availableLogs)
|
|
}
|
|
|
|
logs, err := loghandler.GetLogByDate(params.Type, query.D)
|
|
|
|
if err != nil {
|
|
return c.SendStatus(fiber.StatusUnprocessableEntity)
|
|
}
|
|
|
|
return c.JSON(logs)
|
|
}
|
|
|
|
func GetAvailableLogTypes(c *fiber.Ctx) error {
|
|
// swagger:operation GET /v1/log/types log getAvailableLogTypes
|
|
// ---
|
|
// summary: Get the available log types
|
|
// consumes:
|
|
// - application/json
|
|
// produces:
|
|
// - application/json
|
|
// responses:
|
|
// '200':
|
|
// description: Successfully got log types. Returns an array of strings
|
|
|
|
logTypes := loghandler.GetAvailableLogTypes()
|
|
|
|
return c.JSON(logTypes)
|
|
}
|