fix(hamlog): stop offering an upload that cannot succeed
HAMLOG.online no longer issues API keys, and its upload API takes nothing else. An operator without a key cannot obtain one, so the auto-upload switch, the on-close sweep and the 'Send to' entry were all arming something that could only fail — silently, once per QSO. Closed at the source rather than hidden in the UI: the upload returns a sentinel that says why, the manager stops routing to it and says so once a session, and the manual path refuses with the same words. The settings page states it plainly instead of showing a switch that does nothing. Nothing else goes. Their confirmations arrive as an ADIF FILE and never needed a key, so that import stays; the sent/received state already in operators' logs stays readable, filterable and bulk-editable; and the upload itself is kept whole as uploadHamlogLive, still covered by its request-shape tests, against the day keys come back.
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
@@ -104,7 +105,26 @@ func UploadHamlog(ctx context.Context, client *http.Client, cfg ServiceConfig, a
|
||||
return uploadHamlogTo(ctx, client, hamlogAPIEndpoint, cfg, adifRecord)
|
||||
}
|
||||
|
||||
// ErrHamlogClosed is why nothing is sent to HAMLOG.online any more.
|
||||
//
|
||||
// The site stopped issuing API keys, and the upload API takes nothing else. An
|
||||
// operator without a key cannot obtain one, and one WITH an old key is the
|
||||
// exception this cannot be built around — so the door is closed here rather
|
||||
// than left ajar for a request that can only fail.
|
||||
//
|
||||
// The code stays: their confirmations still arrive as an ADIF FILE (QSL Manager
|
||||
// → HAMLOG.online → Import confirmations), which never needed a key, and the
|
||||
// sent/received state already in operators' logs stays readable, filterable and
|
||||
// bulk-editable.
|
||||
var ErrHamlogClosed = errors.New("hamlog: HAMLOG.online no longer issues API keys, so uploading is not possible — their confirmations can still be imported from a file")
|
||||
|
||||
func uploadHamlogTo(ctx context.Context, client *http.Client, endpoint string, cfg ServiceConfig, adifRecord string) (UploadResult, error) {
|
||||
return UploadResult{}, ErrHamlogClosed
|
||||
}
|
||||
|
||||
// uploadHamlogLive is the upload as it was, kept whole against the day keys
|
||||
// come back. Nothing calls it.
|
||||
func uploadHamlogLive(ctx context.Context, client *http.Client, endpoint string, cfg ServiceConfig, adifRecord string) (UploadResult, error) {
|
||||
key := strings.TrimSpace(cfg.APIKey)
|
||||
if key == "" {
|
||||
return UploadResult{}, fmt.Errorf("hamlog: API key not set — get one at %s", hamlogKeyPage)
|
||||
|
||||
Reference in New Issue
Block a user