package application import ( "git.ali33.ru/fcg-xvii/rest" "git.ali33.ru/fcg-xvii/rest/commands" ) func HTTPHeadersCrossOrigin() func() map[string]string { return func() map[string]string { return map[string]string{ "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "POST, GET, OPTIONS, PUT, DELETE", "Access-Control-Allow-Headers": "Content-Type, Authorization, X-Requested-With", } } } type AppConfig struct { SSL bool Addr string Http bool Websocket bool Secret []byte HttpPrefix string WebsocketPrefix string HTTPHeaders func() map[string]string Commands func(string) (rest.IExecuter, bool) TLSKeyPath string TLSCertPath string Core any OnSocketConnect func(rest.IStream) OnSocketDisconnect func(rest.IStream) } func (s *AppConfig) GetCommandsMethod() func(string) (rest.IExecuter, bool) { if s.Commands != nil { return s.Commands } return commands.GetCommand } func (s *AppConfig) GetHttpPrefix() string { if len(s.HttpPrefix) > 0 { return s.HttpPrefix } return "/api/" } func (s *AppConfig) GetWebsocketPrefix() string { if len(s.WebsocketPrefix) > 0 { return s.WebsocketPrefix } return "/ws/" } func (s *AppConfig) GetHTTPHeaders() func() map[string]string { if s.HTTPHeaders != nil { return s.HTTPHeaders } return HTTPHeadersCrossOrigin() }