package repository import ( "app-cloudep-tweeting-service/internal/config" "app-cloudep-tweeting-service/internal/domain/repository" client4J "app-cloudep-tweeting-service/internal/lib/neo4j" "context" "github.com/neo4j/neo4j-go-driver/v5/neo4j" ) type SocialNetworkParam struct { Config config.Config Neo4jClient *client4J.Client } type SocialNetworkRepository struct { cfg config.Config neo4jClient *client4J.Client } func MustSocialNetworkRepository(param SocialNetworkParam) repository.SocialNetworkRepository { return &SocialNetworkRepository{ cfg: param.Config, neo4jClient: param.Neo4jClient, } } func (s SocialNetworkRepository) CreateUserNode(ctx context.Context, uid string) error { session, err := s.neo4jClient.Conn() if err != nil { return err } defer session.Close(ctx) params := map[string]interface{}{ "uid": uid, } _, err = session.NewSession(ctx, neo4j.SessionConfig{ AccessMode: neo4j.AccessModeWrite, }).Run(ctx, "CREATE (n:User {uid: $uid}) RETURN n", params) if err != nil { return err } // // 處理結果 // if run.Next(ctx) { // node := run.Record().AsMap() // fmt.Printf("Created Node: %v\n", node) // } return nil }