Select Git revision
api.go 16.20 KiB
package main
import (
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"io/ioutil"
"net/http"
"random.chars.jp/git/image-board/store"
"strconv"
"strings"
)
type UserPayload struct {
Username string `json:"username"`
ID string `json:"id"`
Privileged bool `json:"privileged"`
}
type UserCreatePayload struct {
Username string `json:"username"`
Password string `json:"password"`
Privileged bool `json:"privileged"`
}
type UserUpdatePayload struct {
Username string `json:"username"`
}
type TagUpdatePayload struct {
Type string `json:"type"`
}
type ImageUpdatePayload struct {
Source string `json:"source"`
}
var unauthorized = gin.H{"error": "not authorized"}
var denied = gin.H{"error": "permission denied"}
func registerAPI() {
router.GET("/api", func(context *gin.Context) {
context.JSON(http.StatusOK, store.Info{
Revision: instance.Revision,
Compat: instance.Compat,
Register: instance.Register,
InitialUser: instance.InitialUser,
PermissionDir: instance.PermissionDir,
PermissionFile: instance.PermissionFile,
})
})
router.GET("/api/single_user", func(context *gin.Context) {
context.JSON(http.StatusOK, instance.SingleUser)
})
router.GET("/api/user", func(context *gin.Context) {
context.JSON(http.StatusOK, instance.Users())
})
router.PUT("/api/user", func(context *gin.Context) {
user, ok := getUser(context)
if !instance.Register {
if !ok {
context.JSON(http.StatusForbidden, gin.H{
"error": "user registration disallowed",
})
return
}
if !user.Privileged {