mirror of
https://github.com/grassrootseconomics/cic-custodial.git
synced 2024-11-22 06:16:45 +01:00
Mohammed Sohail
40cb86f522
* otx can nw be tracked at /api/track/:trackingId * moved queries to queries folder * fixed validation error check in ErrorHandler * added enum package with enum types * updated migrations: added enum tables
60 lines
1.0 KiB
Go
60 lines
1.0 KiB
Go
package store
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/georgysavva/scany/v2/pgxscan"
|
|
)
|
|
|
|
type TxStatus struct {
|
|
Type string `db:"type" json:"txType"`
|
|
TxHash string `db:"tx_hash" json:"txHash"`
|
|
TransferValue uint64 `db:"transfer_value" json:"transferValue"`
|
|
CreatedAt time.Time `db:"created_at" json:"createdAt"`
|
|
Status string `db:"status" json:"status"`
|
|
}
|
|
|
|
func (s *PostgresStore) CreateOtx(ctx context.Context, otx OTX) (uint, error) {
|
|
var (
|
|
id uint
|
|
)
|
|
|
|
if err := s.db.QueryRow(
|
|
ctx,
|
|
s.queries.CreateOTX,
|
|
otx.TrackingId,
|
|
otx.Type,
|
|
otx.RawTx,
|
|
otx.TxHash,
|
|
otx.From,
|
|
otx.Data,
|
|
otx.GasPrice,
|
|
otx.GasLimit,
|
|
otx.TransferValue,
|
|
otx.Nonce,
|
|
).Scan(&id); err != nil {
|
|
return id, err
|
|
}
|
|
|
|
return id, nil
|
|
}
|
|
|
|
func (s *PostgresStore) GetTxStatusByTrackingId(ctx context.Context, trackingId string) ([]*TxStatus, error) {
|
|
var (
|
|
txs []*TxStatus
|
|
)
|
|
|
|
if err := pgxscan.Select(
|
|
ctx,
|
|
s.db,
|
|
&txs,
|
|
s.queries.GetTxStatusByTrackingId,
|
|
trackingId,
|
|
); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return txs, nil
|
|
}
|