refactor logging setup and split local/remote close APIs
This commit is contained in:
+4
-5
@@ -95,10 +95,9 @@ type API struct {
|
||||
}
|
||||
|
||||
// NewAPI creates a new API client from options.
|
||||
// Always call CloseApi() when done to release resources.
|
||||
// Always call Close() when done to release resources.
|
||||
func NewAPI(opts *APIOpts) *API {
|
||||
l := slog.CreateLogger().Level(utils.GetLoggerLevel()).Prefix("API")
|
||||
l.AddWriter(l.CreateJsonStdoutWriter())
|
||||
l := utils.CreateLogger("API", utils.GetLoggerLevel())
|
||||
|
||||
client := opts.client
|
||||
if client == nil {
|
||||
@@ -120,10 +119,10 @@ func NewAPI(opts *APIOpts) *API {
|
||||
}
|
||||
}
|
||||
|
||||
// CloseApi shuts down the internal worker pool and closes the logger.
|
||||
// Close shuts down the internal worker pool and closes the logger.
|
||||
// Must be called to avoid resource leaks.
|
||||
// See https://core.telegram.org/bots/api
|
||||
func (api *API) CloseApi() error {
|
||||
func (api *API) Close() error {
|
||||
api.pool.stop()
|
||||
return api.logger.Close()
|
||||
}
|
||||
|
||||
+2
-2
@@ -35,8 +35,8 @@ func TestAPILeavesAcceptEncodingToHTTPTransport(t *testing.T) {
|
||||
SetHTTPClient(client),
|
||||
)
|
||||
defer func() {
|
||||
if err := api.CloseApi(); err != nil {
|
||||
t.Fatalf("CloseApi returned error: %v", err)
|
||||
if err := api.Close(); err != nil {
|
||||
t.Fatalf("Close returned error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
+4
-4
@@ -49,18 +49,18 @@ func (api *API) LogOutWithContext(ctx context.Context) (bool, error) {
|
||||
return req.DoWithContext(ctx, api)
|
||||
}
|
||||
|
||||
// Close closes the bot instance on the local server.
|
||||
// CloseRemote closes the bot instance on the local server.
|
||||
// Returns true on success.
|
||||
// See https://core.telegram.org/bots/api#close
|
||||
func (api *API) Close() (bool, error) {
|
||||
func (api *API) CloseRemote() (bool, error) {
|
||||
req := NewRequest[bool, EmptyParams]("close", NoParams)
|
||||
return req.Do(api)
|
||||
}
|
||||
|
||||
// CloseWithContext is the context-aware variant of Close.
|
||||
// CloseRemoteWithContext is the context-aware variant of CloseRemote.
|
||||
// It executes the same request but uses ctx for cancellation and deadlines.
|
||||
// See https://core.telegram.org/bots/api#close
|
||||
func (api *API) CloseWithContext(ctx context.Context) (bool, error) {
|
||||
func (api *API) CloseRemoteWithContext(ctx context.Context) (bool, error) {
|
||||
req := NewRequest[bool, EmptyParams]("close", NoParams)
|
||||
return req.DoWithContext(ctx, api)
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@ func TestGetFileByLinkUsesConfiguredAPIURL(t *testing.T) {
|
||||
SetHTTPClient(client),
|
||||
)
|
||||
defer func() {
|
||||
if err := api.CloseApi(); err != nil {
|
||||
t.Fatalf("CloseApi returned error: %v", err)
|
||||
if err := api.Close(); err != nil {
|
||||
t.Fatalf("Close returned error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -60,8 +60,8 @@ func TestGetFileByLinkReturnsHTTPStatusError(t *testing.T) {
|
||||
SetHTTPClient(client),
|
||||
)
|
||||
defer func() {
|
||||
if err := api.CloseApi(); err != nil {
|
||||
t.Fatalf("CloseApi returned error: %v", err)
|
||||
if err := api.Close(); err != nil {
|
||||
t.Fatalf("Close returned error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
@@ -97,8 +97,8 @@ func TestGetUpdatesOmitsAllowedUpdatesWhenEmpty(t *testing.T) {
|
||||
SetHTTPClient(client),
|
||||
)
|
||||
defer func() {
|
||||
if err := api.CloseApi(); err != nil {
|
||||
t.Fatalf("CloseApi returned error: %v", err)
|
||||
if err := api.Close(); err != nil {
|
||||
t.Fatalf("Close returned error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
@@ -69,8 +69,7 @@ type Uploader struct {
|
||||
|
||||
// NewUploader creates a multipart uploader bound to an API client.
|
||||
func NewUploader(api *API) *Uploader {
|
||||
logger := slog.CreateLogger().Level(utils.GetLoggerLevel()).Prefix("UPLOADER")
|
||||
logger.AddWriter(logger.CreateJsonStdoutWriter())
|
||||
logger := utils.CreateLogger("UPLOADER", utils.GetLoggerLevel())
|
||||
return &Uploader{api, logger}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,8 +44,8 @@ func TestUploaderEncodesJSONFieldsAndLeavesAcceptEncodingToHTTPTransport(t *test
|
||||
SetHTTPClient(client),
|
||||
)
|
||||
defer func() {
|
||||
if err := api.CloseApi(); err != nil {
|
||||
t.Fatalf("CloseApi returned error: %v", err)
|
||||
if err := api.Close(); err != nil {
|
||||
t.Fatalf("Close returned error: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user