0x4a52466c696e74 il y a 1 an
Parent
commit
24958e5f9e
1 fichiers modifiés avec 20 ajouts et 5 suppressions
  1. 20 5
      server.go

+ 20 - 5
server.go

@@ -41,12 +41,23 @@ func NewServer(addr string, secret []byte) IServer {
 	}
 }
 
+func NewServerTLS(addr string, secret []byte, tlsKey, tlsCert string) IServer {
+	serv := NewServer(addr, secret).(*Server)
+	serv.tlsEnabled = true
+	serv.tlsKey = tlsKey
+	serv.tlsCert = tlsCert
+	return serv
+}
+
 // Server реализует сервер для рест апи
 type Server struct {
-	secret []byte
-	server *http.Server
-	opened atomic.Bool
-	ctx    context.Context
+	secret     []byte
+	server     *http.Server
+	opened     atomic.Bool
+	ctx        context.Context
+	tlsEnabled bool
+	tlsKey     string
+	tlsCert    string
 }
 
 // Context возвращает контекст сервера
@@ -72,7 +83,11 @@ func (s *Server) Listen(timeout time.Duration) (err error) {
 	go func() {
 		var cancel context.CancelFunc
 		s.ctx, cancel = context.WithCancel(context.Background())
-		err = s.server.ListenAndServe()
+		if !s.tlsEnabled {
+			err = s.server.ListenAndServe()
+		} else {
+			err = s.server.ListenAndServeTLS(s.tlsCert, s.tlsKey)
+		}
 		s.opened.Store(false)
 		cancel()
 	}()