Skip to content

Commit

Permalink
Replaced json data type with alias
Browse files Browse the repository at this point in the history
  • Loading branch information
amit-momin committed Nov 21, 2023
1 parent bc026b7 commit 4c13279
Showing 1 changed file with 3 additions and 54 deletions.
57 changes: 3 additions & 54 deletions core/services/pg/datatypes/json.go
Original file line number Diff line number Diff line change
@@ -1,60 +1,9 @@
package datatypes

import (
"database/sql/driver"
"encoding/json"
"errors"
"fmt"
"github.com/smartcontractkit/chainlink-common/pkg/sqlutil"
)

// Deprecated: JSON data type was moved to chainlink-common which should be used instead
// JSON defined JSON data type, need to implements driver.Valuer, sql.Scanner interface
type JSON json.RawMessage

// Value return json value, implement driver.Valuer interface
func (j JSON) Value() (driver.Value, error) {
if len(j) == 0 {
return nil, nil
}
bytes, err := json.RawMessage(j).MarshalJSON()
return string(bytes), err
}

// Scan scan value into Jsonb, implements sql.Scanner interface
func (j *JSON) Scan(value interface{}) error {
if value == nil {
*j = JSON("null")
return nil
}
var bytes []byte
switch v := value.(type) {
case []byte:
bytes = v
case string:
bytes = []byte(v)
default:
return errors.New(fmt.Sprint("Failed to unmarshal JSONB value:", value))
}

result := json.RawMessage{}
err := json.Unmarshal(bytes, &result)
*j = JSON(result)
return err
}

// MarshalJSON to output non base64 encoded []byte
func (j JSON) MarshalJSON() ([]byte, error) {
return json.RawMessage(j).MarshalJSON()
}

// UnmarshalJSON to deserialize []byte
func (j *JSON) UnmarshalJSON(b []byte) error {
result := json.RawMessage{}
err := result.UnmarshalJSON(b)
*j = JSON(result)
return err
}

func (j JSON) String() string {
return string(j)
}
// Deprecated: Use sqlutil.JSON instead
type JSON = sqlutil.JSON

0 comments on commit 4c13279

Please sign in to comment.