databag/net/server/internal/routers.go
2023-03-27 22:40:24 -07:00

836 lines
14 KiB
Go

package databag
import (
"github.com/gorilla/mux"
"net/http"
"strings"
)
type route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
}
type routes []route
//NewRouter allocate router for databag API
func NewRouter() *mux.Router {
go SendNotifications()
router := mux.NewRouter().StrictSlash(true)
for _, route := range endpoints {
var handler http.Handler
handler = route.HandlerFunc
handler = Logger(handler, route.Name)
router.
Methods(route.Method).
Path(route.Pattern).
Name(route.Name).
Handler(handler)
}
fs := http.FileServer(http.Dir("/app/databag/net/web/build/"))
router.PathPrefix("/").Handler(http.StripPrefix("/", fs))
return router
}
var endpoints = routes{
route{
"AddAccount",
strings.ToUpper("Post"),
"/account/profile",
AddAccount,
},
route{
"AddAccountApp",
strings.ToUpper("Post"),
"/account/apps",
AddAccountApp,
},
route{
"AddAccountAuthentication",
strings.ToUpper("Post"),
"/account/auth",
AddAccountAuthentication,
},
route{
"GetAccountApps",
strings.ToUpper("Get"),
"/account/apps",
GetAccountApps,
},
route{
"GetAccountAsset",
strings.ToUpper("Get"),
"/account/assets/{assetID}",
GetAccountAsset,
},
route{
"GetAccountListing",
strings.ToUpper("Get"),
"/account/listing",
GetAccountListing,
},
route{
"GetAccountListingImage",
strings.ToUpper("Get"),
"/account/listing/{guid}/image",
GetAccountListingImage,
},
route{
"GetAccountListingMessage",
strings.ToUpper("Get"),
"/account/listing/{guid}/message",
GetAccountListingMessage,
},
route{
"GetAccountStatus",
strings.ToUpper("Get"),
"/account/status",
GetAccountStatus,
},
route{
"GetAccountToken",
strings.ToUpper("Get"),
"/account/token",
GetAccountToken,
},
route{
"GetAccountAvailable",
strings.ToUpper("Get"),
"/account/available",
GetAccountAvailable,
},
route{
"GetAccountUsername",
strings.ToUpper("Get"),
"/account/username",
GetAccountUsername,
},
route{
"RemoveAccount",
strings.ToUpper("Delete"),
"/account/profile",
RemoveAccount,
},
route{
"RemoveAccountApp",
strings.ToUpper("Delete"),
"/account/apps/{appID}",
RemoveAccountApp,
},
route{
"RemoveAgentToken",
strings.ToUpper("Delete"),
"/account/apps",
RemoveAgentToken,
},
route{
"SetAccountAccess",
strings.ToUpper("Put"),
"/account/access",
SetAccountAccess,
},
route{
"SetAccountAuthentication",
strings.ToUpper("Put"),
"/account/auth",
SetAccountAuthentication,
},
route{
"SetAccountExport",
strings.ToUpper("Put"),
"/account/export",
SetAccountExport,
},
route{
"SetAccountNode",
strings.ToUpper("Put"),
"/account/node",
SetAccountNode,
},
route{
"SetAccountLogin",
strings.ToUpper("Put"),
"/account/login",
SetAccountLogin,
},
route{
"SetAccountNotification",
strings.ToUpper("Put"),
"/account/notification",
SetAccountNotification,
},
route{
"SetAccountSeal",
strings.ToUpper("Put"),
"/account/seal",
SetAccountSeal,
},
route{
"SetAccountSerchable",
strings.ToUpper("Put"),
"/account/searchable",
SetAccountSearchable,
},
route{
"AddNodeAccount",
strings.ToUpper("Post"),
"/admin/accounts",
AddNodeAccount,
},
route{
"GetNodeAccountImage",
strings.ToUpper("Get"),
"/admin/accounts/{accountID}/image",
GetNodeAccountImage,
},
route{
"SetNodeAccountStatus",
strings.ToUpper("Put"),
"/admin/accounts/{accountID}/status",
SetNodeAccountStatus,
},
route{
"AddNodeAccountAccess",
strings.ToUpper("Post"),
"/admin/accounts/{accountID}/auth",
AddNodeAccountAccess,
},
route{
"GetNodeAccounts",
strings.ToUpper("Get"),
"/admin/accounts",
GetNodeAccounts,
},
route{
"GetNodeConfig",
strings.ToUpper("Get"),
"/admin/config",
GetNodeConfig,
},
route{
"GetNodeStatus",
strings.ToUpper("Get"),
"/admin/status",
GetNodeStatus,
},
route{
"ImportAccount",
strings.ToUpper("Post"),
"/admin/accounts/import",
ImportAccount,
},
route{
"RemoveNodeAccount",
strings.ToUpper("Delete"),
"/admin/accounts/{accountID}",
RemoveNodeAccount,
},
route{
"SetNodeAccount",
strings.ToUpper("Put"),
"/admin/accounts/{accountID}/reset",
SetNodeAccount,
},
route{
"SetNodeConfig",
strings.ToUpper("Put"),
"/admin/config",
SetNodeConfig,
},
route{
"SetNodeStatus",
strings.ToUpper("Put"),
"/admin/status",
SetNodeStatus,
},
route{
"AddFlag",
strings.ToUpper("Post"),
"/account/flag/{guid}",
AddFlag,
},
route{
"AddGroup",
strings.ToUpper("Post"),
"/alias/groups",
AddGroup,
},
route{
"GetGroupSubjectField",
strings.ToUpper("Get"),
"/alias/groups/{groupID}/subject/{field}",
GetGroupSubjectField,
},
route{
"GetGroups",
strings.ToUpper("Get"),
"/alias/groups",
GetGroups,
},
route{
"RemoveGroup",
strings.ToUpper("Delete"),
"/alias/groups/{groupID}",
RemoveGroup,
},
route{
"SetGroupSubject",
strings.ToUpper("Put"),
"/alias/groups/{groupID}/subject",
SetGroupSubject,
},
route{
"AddArticle",
strings.ToUpper("Post"),
"/attribute/articles",
AddArticle,
},
route{
"ClearArticleGroup",
strings.ToUpper("Delete"),
"/attribute/articles/{articleID}/groups/{groupID}",
ClearArticleGroup,
},
route{
"GetArticleSubjectField",
strings.ToUpper("Get"),
"/attribute/articles/{articleID}/subject/{field}",
GetArticleSubjectField,
},
route{
"GetArticles",
strings.ToUpper("Get"),
"/attribute/articles",
GetArticles,
},
route{
"RemoveArticle",
strings.ToUpper("Delete"),
"/attribute/articles/{articleID}",
RemoveArticle,
},
route{
"SetArticleGroup",
strings.ToUpper("Put"),
"/attribute/articles/{articleID}/groups/{groupID}",
SetArticleGroup,
},
route{
"SetArticleSubject",
strings.ToUpper("Put"),
"/attribute/articles/{articleID}/subject",
SetArticleSubject,
},
route{
"Authorize",
strings.ToUpper("Put"),
"/authorize",
Authorize,
},
route{
"AddCard",
strings.ToUpper("Post"),
"/contact/cards",
AddCard,
},
route{
"ClearCardGroup",
strings.ToUpper("Delete"),
"/contact/cards/{cardID}/groups/{groupID}",
ClearCardGroup,
},
route{
"ClearCardNotes",
strings.ToUpper("Delete"),
"/contact/cards/{cardID}/notes",
ClearCardNotes,
},
route{
"GetCard",
strings.ToUpper("Get"),
"/contact/cards/{cardID}",
GetCard,
},
route{
"GetCardDetail",
strings.ToUpper("Get"),
"/contact/cards/{cardID}/detail",
GetCardDetail,
},
route{
"GetCardProfile",
strings.ToUpper("Get"),
"/contact/cards/{cardID}/profile",
GetCardProfile,
},
route{
"GetCardProfileImage",
strings.ToUpper("Get"),
"/contact/cards/{cardID}/profile/image",
GetCardProfileImage,
},
route{
"GetCards",
strings.ToUpper("Get"),
"/contact/cards",
GetCards,
},
route{
"GetCloseMessage",
strings.ToUpper("Get"),
"/contact/cards/{cardID}/closeMessage",
GetCloseMessage,
},
route{
"GetOpenMessage",
strings.ToUpper("Get"),
"/contact/cards/{cardID}/openMessage",
GetOpenMessage,
},
route{
"RemoveCard",
strings.ToUpper("Delete"),
"/contact/cards/{cardID}",
RemoveCard,
},
route{
"SetArticleRevision",
strings.ToUpper("Put"),
"/contact/article/revision",
SetArticleRevision,
},
route{
"SetCardGroup",
strings.ToUpper("Put"),
"/contact/cards/{cardID}/groups/{groupID}",
SetCardGroup,
},
route{
"SetCardNotes",
strings.ToUpper("Put"),
"/contact/cards/{cardID}/notes",
SetCardNotes,
},
route{
"SetCardProfile",
strings.ToUpper("Put"),
"/contact/cards/{cardID}/profile",
SetCardProfile,
},
route{
"SetCardStatus",
strings.ToUpper("Put"),
"/contact/cards/{cardID}/status",
SetCardStatus,
},
route{
"SetChannelRevision",
strings.ToUpper("Put"),
"/contact/channel/revision",
SetChannelRevision,
},
route{
"SetCloseMessage",
strings.ToUpper("Put"),
"/contact/closeMessage",
SetCloseMessage,
},
route{
"SetOpenMessage",
strings.ToUpper("Put"),
"/contact/openMessage",
SetOpenMessage,
},
route{
"SetProfileRevision",
strings.ToUpper("Put"),
"/contact/profile/revision",
SetProfileRevision,
},
route{
"SetViewRevision",
strings.ToUpper("Put"),
"/contact/view/revision",
SetViewRevision,
},
route{
"SetPushEvent",
strings.ToUpper("Post"),
"/contact/notification",
SetPushEvent,
},
route{
"AddChannel",
strings.ToUpper("Post"),
"/content/channels",
AddChannel,
},
route{
"AddChannelTopicAsset",
strings.ToUpper("Post"),
"/content/channels/{channelID}/topics/{topicID}/assets",
AddChannelTopicAsset,
},
route{
"AddChannelTopic",
strings.ToUpper("Post"),
"/content/channels/{channelID}/topics",
AddChannelTopic,
},
route{
"AddChannelTopicTag",
strings.ToUpper("Post"),
"/content/channels/{channelID}/topics/{topicID}/tags",
AddChannelTopicTag,
},
route{
"ClearChannelCard",
strings.ToUpper("Delete"),
"/content/channels/{channelID}/cards/{cardID}",
ClearChannelCard,
},
route{
"ClearChannelGroup",
strings.ToUpper("Delete"),
"/content/channels/{channelID}/groups/{groupID}",
ClearChannelGroup,
},
route{
"GetChannelTopicAsset",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics/{topicID}/assets/{assetID}",
GetChannelTopicAsset,
},
route{
"GetChannelTopicAssets",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics/{topicID}/assets",
GetChannelTopicAssets,
},
route{
"GetChannelDetail",
strings.ToUpper("Get"),
"/content/channels/{channelID}/detail",
GetChannelDetail,
},
route{
"GetChannelSummary",
strings.ToUpper("Get"),
"/content/channels/{channelID}/summary",
GetChannelSummary,
},
route{
"GetChannelSubjectField",
strings.ToUpper("Get"),
"/content/channels/{channelID}/subject/{field}",
GetChannelSubjectField,
},
route{
"GetChannelTopic",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics/{topicID}/detail",
GetChannelTopic,
},
route{
"GetChannelTopicDetail",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics/{topicID}/detail",
GetChannelTopicDetail,
},
route{
"GetChannelTopicSubjectField",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics/{topicID}/subject/{field}",
GetChannelTopicSubjectField,
},
route{
"GetChannelTopicTagSubjectField",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics/{topicID}/tags/{tagID}/subject/{field}",
GetChannelTopicTagSubjectField,
},
route{
"GetChannelTopicTags",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics/{topicID}/tags",
GetChannelTopicTags,
},
route{
"GetChannelTopics",
strings.ToUpper("Get"),
"/content/channels/{channelID}/topics",
GetChannelTopics,
},
route{
"GetChannels",
strings.ToUpper("Get"),
"/content/channels",
GetChannels,
},
route{
"RemoveChannel",
strings.ToUpper("Delete"),
"/content/channels/{channelID}",
RemoveChannel,
},
route{
"RemoveChannelTopicAsset",
strings.ToUpper("Delete"),
"/content/channels/{channelID}/topics/{topicID}/assets/{assetID}",
RemoveChannelTopicAsset,
},
route{
"RemoveChannelTopic",
strings.ToUpper("Delete"),
"/content/channels/{channelID}/topics/{topicID}",
RemoveChannelTopic,
},
route{
"RemoveChannelTopicTag",
strings.ToUpper("Delete"),
"/content/channels/{channelID}/topics/{topicID}/tags/{tagID}",
RemoveChannelTopicTag,
},
route{
"SetChannelCard",
strings.ToUpper("Put"),
"/content/channels/{channelID}/cards/{cardID}",
SetChannelCard,
},
route{
"SetChannelTopicConfirmed",
strings.ToUpper("Put"),
"/content/channels/{channelID}/topics/{topicID}/confirmed",
SetChannelTopicConfirmed,
},
route{
"SetChannelGroup",
strings.ToUpper("Put"),
"/content/channels/{channelID}/groups/{groupID}",
SetChannelGroup,
},
route{
"GetChannelNotification",
strings.ToUpper("Get"),
"/content/channels/{channelID}/notification",
GetChannelNotification,
},
route{
"SetChannelNotification",
strings.ToUpper("Put"),
"/content/channels/{channelID}/notification",
SetChannelNotification,
},
route{
"SetChannelSubject",
strings.ToUpper("Put"),
"/content/channels/{channelID}/subject",
SetChannelSubject,
},
route{
"SetChannelTopicSubject",
strings.ToUpper("Put"),
"/content/channels/{channelID}/topics/{topicID}/subject",
SetChannelTopicSubject,
},
route{
"SetChannelTopicTagSubject",
strings.ToUpper("Put"),
"/content/channels/{channelID}/topics/{topicID}/tags/{tagID}/subject",
SetChannelTopicTagSubject,
},
route{
"GetProfile",
strings.ToUpper("Get"),
"/profile",
GetProfile,
},
route{
"GetProfileImage",
strings.ToUpper("Get"),
"/profile/image",
GetProfileImage,
},
route{
"GetProfileMessage",
strings.ToUpper("Get"),
"/profile/message",
GetProfileMessage,
},
route{
"SetProfile",
strings.ToUpper("Put"),
"/profile/data",
SetProfile,
},
route{
"SetProfileImage",
strings.ToUpper("Put"),
"/profile/image",
SetProfileImage,
},
route{
"RemoveProfile",
strings.ToUpper("Delete"),
"/profile",
RemoveProfile,
},
route{
"Status",
strings.ToUpper("Get"),
"/status",
Status,
},
route{
"AddCall",
strings.ToUpper("Post"),
"/talk/calls",
AddCall,
},
route{
"KeepCall",
strings.ToUpper("Put"),
"/talk/calls/{callId}",
KeepCall,
},
route{
"EndCall",
strings.ToUpper("Delete"),
"/talk/calls/{callId}",
RemoveCall,
},
route{
"AddRing",
strings.ToUpper("Post"),
"/talk/rings",
AddRing,
},
route{
"Signal",
strings.ToUpper("Get"),
"/signal",
Signal,
},
}