Review a generated session loader

from Error handling
Go 1.27 advanced 8 min 4 issues to find

Review this generated code before it ships.

Load a session by ID, preserve matchable storage and decoding causes, reject JSON null, keep stored payloads out of errors, and leave reporting to the caller.

Go
func LoadSession(id string, store SessionStore) (*Session, error) {
    data, err := store.Read(id)
    if err != nil {
        return nil, fmt.Errorf("load session %q: %v", id, err)
    }

    var session *Session
    if err := json.Unmarshal(data, &session); err != nil {
        log.Printf("decode session %q: %v", id, err)
        return nil, fmt.Errorf("decode payload %s: %w", data, err)
    }
    if session.UserID == "" {
        return nil, errors.New("session has no user")
    }
    return session, nil
}

generated code is illustrative, not from any one model

Open in playground
Report an error