cyberindex/database/graph.go

package database

import (
	graphtypes "github.com/cybercongress/go-cyber/v4/x/graph/types"
)

func (db *CyberDb) SaveCyberlinks(
	cyberlinks []graphtypes.Link,
	neuron string,
	timestamp string,
	height int64,
	txHash string,
) error {
	queryCyberlinks := `
		INSERT INTO cyberlinks (particle_from, particle_to, neuron, timestamp, height, transaction_hash)
		VALUES ($5, $, MATH_PLACEHOLDER_14, MATH_PLACEHOLDER_26) ON CONFLICT DO NOTHING
	`
	queryParticles := `
		INSERT INTO particles (particle, neuron, timestamp, height, transaction_hash)
		VALUES (MATH_PLACEHOLDER_32, MATH_PLACEHOLDER_44, $5) ON CONFLICT DO NOTHING
	`

	for i, _ := range cyberlinks {
		_, err := db.SQL.Exec(queryCyberlinks,
			cyberlinks[i].From,
			cyberlinks[i].To,
			neuron,
			timestamp,
			height,
			txHash,
		)
		if err != nil {
			return err
		}

		_, err = db.SQL.Exec(queryParticles,
			cyberlinks[i].From,
			neuron,
			timestamp,
			height,
			txHash,
		)
		if err != nil {
			return err
		}

		_, err = db.SQL.Exec(queryParticles,
			cyberlinks[i].To,
			neuron,
			timestamp,
			height,
			txHash,
		)
		if err != nil {
			return err
		}
	}
	return nil
}

Synonyms

go-cyber/x/graph/keeper/graph.go
space-pussy/x/graph/keeper/graph.go

Neighbours