mirror of
https://github.com/FlipsideCrypto/flip-rpc-client-go.git
synced 2026-02-06 10:56:45 +00:00
| .gitignore | ||
| client_test.go | ||
| client.go | ||
| dataset.go | ||
| go.mod | ||
| go.sum | ||
| partition.go | ||
| README.md | ||
| refresh_job.go | ||
| rpc.go | ||
| segment.go | ||
flip-client-go
Go client for accessing Flip RPC Interface
Usage
Initialization
config := Config{APIKey: "<api-key>" BaseURL: "<url-to-the-rpc>"}
client, err := NewClient(config)
Get Segment Members
Evaluate a segment's conditions and retrieve its members.
gte := Gte{
PartitionID: "sorted_set:ad43bf8e-0f0c-4102-be91-52bc84150af2:current_balances:flipside",
Value: 10000000,
}
condition := Condition{
Gte: gte,
}
result, err := client.GetSegmentMembers(condition)
Intersect Members to Segment
Identify the intersection of an array of members to a segment's evaluated conditions.
intersectMembers := make([]string, 0)
intersectMembers = append(intersectMembers, "a090b025a1489aa6c9204d7b85ac77d51b814402d5cbdec27335575bb46e4f20")
gte := Gte{
PartitionID: "sorted_set:ad43bf8e-0f0c-4102-be91-52bc84150af2:current_balances:flipside",
Value: 10000000,
}
condition := Condition{
Gte: gte,
}
result, err := client.IntersectMembersToSegment(intersectMembers, condition)
Get Member Partitions
For a particular entityID and memberID return the partitions that the member belongs to.
entityID := "ad43bf8e-0f0c-4102-be91-52bc84150af2"
memberID := "a0969f676e0274c34fffb4261b59d3de48de0d5845ed9780ac43045cf954ed81"
result, err := client.GetMemberPartitions(entityID, memberID)
Get Datasets
Retreive available datasets and apply optional filters (entityID, ownerID).
// Get the datasets corresponding to entityID and ownerID
entityID := "ad43bf8e-0f0c-4102-be91-52bc84150af2"
ownderID := ""
result, err := client.GetDatasets(entityID, ownerID)
Refresh
Refresh a metric or dataset using the provided filters.
// Incremental Refresh of Metrics
entityID := "ad43bf8e-0f0c-4102-be91-52bc84150af2"
tags := make([]string, 0)
tags = append(tags, "60m")
ra := RefreshArgs{
EntityID: entityID,
Stage: "INCREMENTAL_REFRESH",
Tags: tags,
}
result, err := client.Refresh(entityID, ownerID)
// Incremental Refresh of all Datasets
refreshArgs := RefreshArgs{
Stage: "DATASET_BUILD",
}
result, err := client.Refresh(refreshArgs)
Get Refresh Job
Get the status of a refresh job.
// Retrieve the status of this job
jobID := "0f5f8149-03b7-4809-ae3b-0b319cf062c0"
result, err := client.GetRefreshJob(jobID)
Test
go test