123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package main
- import (
- "fmt"
- "io"
- "time"
- fho "git.mokkon.com/sainw/fho_forward/client"
- )
- const (
- // address = "fhogrpc-test.seinmaungengineering.com:7091"
- address = "localhost:7090"
- )
- type Product struct {
- ID string
- Name string
- Color string
- }
- type RegionProduct struct {
- ProductID string
- Name string
- Color string
- Variant float32
- }
- func ProductFromMap(m map[string]interface{}) *Product {
- return &Product{ID: fho.ToString(m["id"]),
- Name: fho.ToString(m["name"]),
- Color: fho.ToString(m["color"])}
- }
- func RegionProductFromMap(m map[string]interface{}) *RegionProduct {
- return &RegionProduct{ProductID: fho.ToString(m["product_id"]),
- Name: fho.ToString(m["name"]),
- Color: fho.ToString(m["color"]),
- Variant: fho.ToFloat32(m["variant"])}
- }
- func main() {
- // c, err := fho.NewClient(address, "da910506-4bdc-4dc2-9481-58a4e3e3c8bf", "1adf4633-7e9e-4bd0-b512-7b087d9c9719")
- client, err := fho.NewClient(address, "bd38e9ac-210a-4e85-865c-401270c07220", "8c95f7fa-3071-427d-a27a-6f96e1d9590e")
- if err != nil {
- panic(err)
- }
- go listen(client)
- // query(client)
- // for {
- // time.Sleep(time.Second * 5)
- // // query(client)
- // }
- select {}
- }
- func listen(client *fho.FhoClient) error {
- snap, err := client.QuerySnapshot("products", time.Now().Add(time.Hour*-114))
- if err != nil {
- fmt.Println("listen error:", err.Error())
- return err
- }
- for {
- data, err := snap.Next()
- if err == io.EOF {
- print("Error EOF")
- break
- }
- if err != nil {
- print("Error:", err.Error())
- break
- }
- for _, rec := range data {
- _product := ProductFromMap(rec)
- fmt.Printf("Listener========================\n")
- printProduct(_product)
- }
- }
- return nil
- }
- func query(client *fho.FhoClient) error {
- data, err := client.Query("region_product_variants", time.Now().Add(time.Hour*-114))
- if err != nil {
- fmt.Println("query error:", err.Error())
- return err
- }
- for _, rec := range data {
- _product := RegionProductFromMap(rec)
- printRegionProduct(_product)
- }
- return nil
- }
- func printProduct(p *Product) {
- fmt.Printf("ID : %v\n", p.ID)
- fmt.Printf("Name : %v\n", p.Name)
- fmt.Printf("Color : %v\n", p.Color)
- }
- func printRegionProduct(p *RegionProduct) {
- fmt.Printf("Product ID : %v\n", p.ProductID)
- fmt.Printf("Name : %v\n", p.Name)
- fmt.Printf("Color : %v\n", p.Color)
- fmt.Printf("Variant : %v\n", p.Variant)
- }
- func dumpMap(m []map[string]interface{}) {
- for _, r := range m {
- for k, v := range r {
- fmt.Printf("%v : %v\n", k, v)
- }
- fmt.Printf("-----------------\n")
- }
- }
|