021ec9c8f6
commita394259f0a
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 19 15:10:08 2024 +0800 done commitaf9d966376
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 19 13:52:33 2024 +0800 debug done. commit47335ca5e9
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 19 12:47:00 2024 +0800 swagger done commit34fb2a478b
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 19 10:05:19 2024 +0800 stage 2, not completed commit88b2255f8b
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 19 09:44:37 2024 +0800 test stage 1 commitb583720223
Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 15 21:53:09 2024 +0800 Squashed commit of the following: commit 1e92328a0fc570fe9419ad5dbaaef77f7dc9ad2e Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 15 21:52:44 2024 +0800 yes, react it! commit 09fffff6139b4cecb81cb1444139f225e95e8917 Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 15 17:33:26 2024 +0800 actions to be done commit 1611b0b338cfd965d15f43fb10308bc56015895f Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 15 15:22:08 2024 +0800 modal needed. commit 88453e7382618fb6774ff1cc4c0f7045d4dfcf46 Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 15 10:52:13 2024 +0800 Domain View done commit 8cedca27c79ca2ba69c8777dfcb6019799875e31 Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 14 21:24:14 2024 +0800 domain delete modal done commit 60cd00c0cad0774bae5b57bcfc4723a29d28d221 Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 14 07:55:11 2024 +0800 1 commit 285853e988db6e6a6371135869da0129fd73afd7 Author: Sense T <me@sense-t.eu.org> Date: Sat Apr 13 17:29:43 2024 +0800 eslint commit 8f0ffbf744fd85a612daacd7bd6cbc45d58907d3 Author: Sense T <me@sense-t.eu.org> Date: Sat Apr 13 17:20:50 2024 +0800 f commit 9762b632225f185d83388e58d93ed49f62fe6b3f Author: Sense T <me@sense-t.eu.org> Date: Sat Apr 13 17:08:37 2024 +0800 views, components to be done commit 321e5255f2b1e705844179dd910d5f5a1ae58298 Author: Sense T <me@sense-t.eu.org> Date: Sat Apr 13 14:29:04 2024 +0800 prepare for react commit3305d8d618
Author: Sense T <me@sense-t.eu.org> Date: Sat Apr 13 10:30:02 2024 +0800 swagger to be done commit2c754e7eec
Author: Sense T <me@sense-t.eu.org> Date: Sat Apr 13 10:14:45 2024 +0800 validate 'em ! commit7b529ad8f6
Author: Sense T <me@sense-t.eu.org> Date: Sat Apr 13 09:22:27 2024 +0800 try to avoid nil point panic commit0012a697cb
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 12 22:26:35 2024 +0800 fix some bug commita098d3056c
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 12 20:03:34 2024 +0800 web debug done commit01765c4e7f
Author: Sense T <me@sense-t.eu.org> Date: Fri Apr 12 15:16:52 2024 +0800 all tsx used, no vue SFC commit731504ae82
Author: Sense T <me@sense-t.eu.org> Date: Thu Apr 11 22:05:58 2024 +0800 tsx used - stage 2 commitb669a3e68e
Author: Sense T <me@sense-t.eu.org> Date: Thu Apr 11 16:18:11 2024 +0800 use tsx for compoents stage 1 commit2ab1b0bf1b
Author: Sense T <me@sense-t.eu.org> Date: Thu Apr 11 12:10:57 2024 +0800 rr validation commit58c66fc3a8
Author: Sense T <me@sense-t.eu.org> Date: Thu Apr 11 11:41:33 2024 +0800 stage 1 commit7a5fcf1972
Author: Sense T <me@sense-t.eu.org> Date: Thu Apr 11 10:51:50 2024 +0800 long options supported commitc3b80093d2
Author: Sense T <me@sense-t.eu.org> Date: Thu Apr 11 10:51:33 2024 +0800 for develop use commit7f52707323
Author: Sense T <me@sense-t.eu.org> Date: Thu Apr 11 10:51:24 2024 +0800 fix typo commit9cc2696bbe
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 10 16:53:03 2024 +0800 record data validate done commit5e2ae637a0
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 10 14:56:15 2024 +0800 end with dot. commited4fee935d
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 10 13:41:32 2024 +0800 content safety commit29f75938bb
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 10 13:24:01 2024 +0800 cmd is ok commit9465bb885d
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 10 11:00:47 2024 +0800 web done commit65bf461d44
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 10 11:00:38 2024 +0800 use tokei for stat commit61395ab61b
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 21:53:12 2024 +0800 errors handler commit9752e7d9ae
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 21:16:19 2024 +0800 model with generics done commit7dd3af3707
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 16:28:18 2024 +0800 use DAO commit2369734230
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 13:06:31 2024 +0800 dao for future commite18781ba25
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 11:36:34 2024 +0800 DotEnd commit613ef7fdd9
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 10:16:06 2024 +0800 record should endwith . commitc93e8107dc
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 10:06:47 2024 +0800 update regexp commit84e9961f4b
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 08:30:32 2024 +0800 error log commitdb77b0fdb2
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 08:25:25 2024 +0800 no console log commit0c197820a0
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 08:25:01 2024 +0800 use flags for validate commit33c9050653
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 07:58:27 2024 +0800 SOA Email Format commitfb9c78efed
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 00:19:03 2024 +0800 no debug commit1a7bf83cb9
Author: Sense T <me@sense-t.eu.org> Date: Tue Apr 9 00:18:18 2024 +0800 1 commite72de14797
Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 8 17:30:25 2024 +0800 last modal commite884840b7d
Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 8 15:56:03 2024 +0800 add commit36b0384319
Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 8 15:02:55 2024 +0800 delete domain modal done commit753e950fae
Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 8 13:49:11 2024 +0800 add domainRemovemodal commit69613f9b6e
Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 8 13:32:01 2024 +0800 modal needed for edit commit8c0b79066f
Author: Sense T <me@sense-t.eu.org> Date: Mon Apr 8 09:37:32 2024 +0800 base UI commita67b2d7724
Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 7 21:07:20 2024 +0800 route update commit5a266e9e6c
Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 7 14:36:55 2024 +0800 ui base data struct commit3449df913c
Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 7 13:08:45 2024 +0800 web store for dev commit156bf651dd
Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 7 13:08:30 2024 +0800 store friendly commitd90e949472
Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 7 10:08:02 2024 +0800 base code update commit0a20b5a670
Author: Sense T <me@sense-t.eu.org> Date: Sun Apr 7 10:07:26 2024 +0800 metrics commitbdd4866c10
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 3 22:37:15 2024 +0800 all api done commit8a8ea59b71
Author: Sense T <me@sense-t.eu.org> Date: Wed Apr 3 17:05:12 2024 +0800 1
100 lines
2.5 KiB
Go
100 lines
2.5 KiB
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
"path"
|
|
"reCoreD-UI/controllers"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
|
"github.com/sirupsen/logrus"
|
|
swaggerfiles "github.com/swaggo/files"
|
|
ginSwagger "github.com/swaggo/gin-swagger"
|
|
)
|
|
|
|
const (
|
|
apiPrefix = "/api"
|
|
metricPrefix = "/metrics"
|
|
swaggerPrefix = "/swagger"
|
|
)
|
|
|
|
|
|
func (s *Server) setupRoute() {
|
|
username, password, err := controllers.GetAdmin()
|
|
if err != nil {
|
|
logrus.Fatal(err)
|
|
}
|
|
logrus.Debugf("got %s:%s", username, password)
|
|
|
|
server := s.webServer.Group(s.prefix)
|
|
|
|
swaggerHandler := server
|
|
if s.debug {
|
|
swaggerHandler.GET(path.Join(swaggerPrefix, "*any"), ginSwagger.WrapHandler(swaggerfiles.Handler))
|
|
} else {
|
|
swaggerHandler.GET(path.Join(swaggerPrefix, "*any"), func(ctx *gin.Context) {
|
|
ctx.HTML(http.StatusNotFound, "", nil)
|
|
})
|
|
}
|
|
|
|
controllers.RegisterMetrics()
|
|
metricHandler := server
|
|
metricHandler.GET(metricPrefix, func(ctx *gin.Context) {
|
|
if err := controllers.RefreshMetrics(); err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
promhttp.Handler().ServeHTTP(ctx.Writer, ctx.Request)
|
|
})
|
|
|
|
apiHandler := server
|
|
|
|
groupV1 := apiHandler.Group(apiPrefix, gin.BasicAuth(gin.Accounts{
|
|
username: password,
|
|
}), func(ctx *gin.Context) {
|
|
_, ok := ctx.Get(gin.AuthUserKey)
|
|
if !ok {
|
|
ctx.AbortWithStatusJSON(http.StatusUnauthorized, Response{
|
|
Succeed: false,
|
|
})
|
|
}
|
|
}).Group("/v1")
|
|
|
|
domains := groupV1.Group("/domains")
|
|
domains.
|
|
GET("/", getDomains).
|
|
POST("/", createDomain).
|
|
PUT("/", updateDomain).
|
|
DELETE("/:id", deleteDomain)
|
|
|
|
records := groupV1.Group("/records")
|
|
records.
|
|
GET("/:domain", getRecords).
|
|
POST("/:domain", createRecord).
|
|
POST("/:domain/bulk", createRecords).
|
|
PUT("/:domain", updateRecord).
|
|
DELETE("/:domain/:id", deleteRecord)
|
|
|
|
/*server := s.webServer.Group(s.prefix)
|
|
server.Use(apiHandler.HandleContext, metricHandler.HandleContext, func(ctx *gin.Context) {
|
|
uri := ctx.Request.RequestURI
|
|
logrus.Debug(uri)
|
|
switch {
|
|
case strings.HasPrefix(uri, path.Join(s.prefix, apiPrefix)):
|
|
//apiHandler.HandleContext(ctx)
|
|
case strings.HasPrefix(uri, path.Join(s.prefix, metricPrefix)):
|
|
//metricHandler.HandleContext(ctx)
|
|
case strings.HasPrefix(uri, path.Join(s.prefix, swaggerPrefix)):
|
|
if s.debug {
|
|
swaggerHandler.HandleContext(ctx)
|
|
} else {
|
|
ctx.HTML(http.StatusNotFound, "", nil)
|
|
}
|
|
default:
|
|
staticFileHandler()(ctx)
|
|
}
|
|
})*/
|
|
|
|
server.GET("/", staticFileHandler())
|
|
server.GET("/assets/*any", staticFileHandler())
|
|
}
|