Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • v1.23.2
  • v1.23.1
  • v1.23.0
  • v1.22.0
  • v1.21.1
  • v1.21.0
  • v1.20.3
  • v1.20.2
  • v1.20.1
  • v1.20.0
  • v1.19.4
  • v1.19.3
  • v1.19.2
  • v1.19.1
  • v1.19.0
  • v1.18.2
  • v1.18.1
  • v1.18.0
  • v1.17.0
  • v1.16.1
21 results

database-logging.go

Blame
  • json-map.go 620 B
    // Copyright 2023 schukai GmbH
    // SPDX-License-Identifier: AGPL-3.0
    
    package jobqueue
    
    import (
    	"database/sql/driver"
    	"encoding/json"
    	"errors"
    )
    
    type JSONMap map[string]interface{}
    
    func (m *JSONMap) Scan(value interface{}) error {
    	bytes, ok := value.([]byte)
    	if !ok {
    		return errors.New("Scan source is not []byte")
    	}
    
    	if err := json.Unmarshal(bytes, m); err != nil {
    		return err
    	}
    	return nil
    }
    
    func (m JSONMap) Value() (driver.Value, error) {
    	if m == nil {
    		// Return NULL if the map is nil
    		return nil, nil
    	}
    
    	bytes, err := json.Marshal(m)
    	if err != nil {
    		return nil, err
    	}
    	return bytes, nil
    }