Skip to content

Commit

Permalink
small fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
guneyin committed Nov 5, 2024
1 parent ba52fe6 commit af099ff
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 46 deletions.
8 changes: 5 additions & 3 deletions api.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"errors"
"fmt"
"github.com/imroc/req/v3"
fp "github.com/nikolaydubina/fpmoney"
"net/http"
"sync"
"time"
Expand Down Expand Up @@ -141,7 +142,7 @@ func (a *api) getQuote(symbols []string, dates ...time.Time) (*QuoteList, error)
}

q.Name = data.Chart.Result[0].Meta.ShortName
q.Price = data.Chart.Result[0].Meta.RegularMarketPrice
q.Price = fp.FromFloat(data.Chart.Result[0].Meta.RegularMarketPrice, fp.TRY)

if !p.IsSingleDay() {
h := History{}
Expand All @@ -167,9 +168,10 @@ func (a *api) getQuote(symbols []string, dates ...time.Time) (*QuoteList, error)
h.SetEnd(p.End().String(), data.Chart.Result[0].Indicators.Adjclose[0].Adjclose[0])

if h.IsValid() {
ratio := h.End.Price.Sub(h.Begin.Price).Mul(100).Float64() / h.End.Price.Float64()
h.Change = HistoryChange{
ByRatio: (h.End.Price - h.Begin.Price) * (100 / h.End.Price),
ByAmount: h.End.Price - h.Begin.Price,
ByRatio: fp.FromFloat(ratio, fp.TRY),
ByAmount: h.End.Price.Sub(h.Begin.Price),
}

q.History = h
Expand Down
9 changes: 3 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,28 +1,25 @@
module github.com/guneyin/gobist

go 1.23

toolchain go1.23.1
go 1.22.0

require (
github.com/imroc/req/v3 v3.46.1
go.nhat.io/cookiejar v0.2.0
github.com/nikolaydubina/fpmoney v1.2.0
)

require (
github.com/andybalholm/brotli v1.1.0 // indirect
github.com/bool64/ctxd v1.2.1 // indirect
github.com/cloudflare/circl v1.4.0 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/google/pprof v0.0.0-20240910150728-a0b0bb1d4134 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/klauspost/compress v1.17.9 // indirect
github.com/nikolaydubina/fpdecimal v0.19.3 // indirect
github.com/onsi/ginkgo/v2 v2.20.2 // indirect
github.com/quic-go/qpack v0.5.1 // indirect
github.com/quic-go/quic-go v0.47.0 // indirect
github.com/refraction-networking/utls v1.6.7 // indirect
github.com/spf13/afero v1.11.0 // indirect
go.uber.org/mock v0.4.0 // indirect
golang.org/x/crypto v0.27.0 // indirect
golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
Expand Down
30 changes: 4 additions & 26 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
github.com/bool64/ctxd v1.2.1 h1:hARFteq0zdn4bwfmxLhak3fXFuvtJVKDH2X29VV/2ls=
github.com/bool64/ctxd v1.2.1/go.mod h1:ZG6QkeGVLTiUl2mxPpyHmFhDzFZCyocr9hluBV3LYuc=
github.com/bool64/dev v0.2.24 h1:xptlKivPh870W3Xc9szPcM7wkFmTMuHT8rc0nu7dITk=
github.com/bool64/dev v0.2.24/go.mod h1:iJbh1y/HkunEPhgebWRNcs8wfGq7sjvJ6W5iabL8ACg=
github.com/bool64/shared v0.1.5 h1:fp3eUhBsrSjNCQPcSdQqZxxh9bBwrYiZ+zOKFkM0/2E=
github.com/bool64/shared v0.1.5/go.mod h1:081yz68YC9jeFB3+Bbmno2RFWvGKv1lPKkMP6MHJlPs=
github.com/cloudflare/circl v1.4.0 h1:BV7h5MgrktNzytKmWjpOtdYrf0lkkbF8YMlBGPhJQrY=
github.com/cloudflare/circl v1.4.0/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
Expand All @@ -23,12 +17,14 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
github.com/iancoleman/orderedmap v0.3.0 h1:5cbR2grmZR/DiVt+VJopEhtVs9YGInGIxAoMJn+Ichc=
github.com/iancoleman/orderedmap v0.3.0/go.mod h1:XuLcCUkdL5owUCQeF2Ue9uuw1EptkJDkXXS7VoV7XGE=
github.com/imroc/req/v3 v3.46.1 h1:oahr2hBTb3AaFI4P6jkN0Elj2ZVKJcdQ/IjWqeIKjvc=
github.com/imroc/req/v3 v3.46.1/go.mod h1:weam9gmyb00QnOtu6HXSnk44dNFkIUQb5QdMx13FeUU=
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
github.com/nikolaydubina/fpdecimal v0.19.3 h1:N02pjbRdmAH+5S61pKeCmEWNiSjt6vn2Uglnltpag8o=
github.com/nikolaydubina/fpdecimal v0.19.3/go.mod h1:FtuJCNRO3SumT8lfJNp5IZ8kcnPzx7blxiUe3VcTTsY=
github.com/nikolaydubina/fpmoney v1.2.0 h1:UtfpUN3k9qdoNYhlOOKoDFqvZORZdTJAEorMIAiETdE=
github.com/nikolaydubina/fpmoney v1.2.0/go.mod h1:QFj+kY2wvwVWe5TKp07hoxGWcyD6MLAMt3YhyN+5Lpc=
github.com/onsi/ginkgo/v2 v2.20.2 h1:7NVCeyIWROIAheY21RLS+3j2bb52W0W82tkberYytp4=
github.com/onsi/ginkgo/v2 v2.20.2/go.mod h1:K9gyxPIlb+aIvnZ8bd9Ak+YP18w3APlR+5coaZoE2ag=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
Expand All @@ -41,26 +37,8 @@ github.com/quic-go/quic-go v0.47.0 h1:yXs3v7r2bm1wmPTYNLKAAJTHMYkPEsfYJmTazXrCZ7
github.com/quic-go/quic-go v0.47.0/go.mod h1:3bCapYsJvXGZcipOHuu7plYtaV6tnF+z7wIFsU0WK9E=
github.com/refraction-networking/utls v1.6.7 h1:zVJ7sP1dJx/WtVuITug3qYUq034cDq9B2MR1K67ULZM=
github.com/refraction-networking/utls v1.6.7/go.mod h1:BC3O4vQzye5hqpmDTWUqi4P5DDhzJfkV1tdqtawQIH0=
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/swaggest/assertjson v1.9.0 h1:dKu0BfJkIxv/xe//mkCrK5yZbs79jL7OVf9Ija7o2xQ=
github.com/swaggest/assertjson v1.9.0/go.mod h1:b+ZKX2VRiUjxfUIal0HDN85W0nHPAYUbYH5WkkSsFsU=
github.com/swaggest/usecase v1.2.0 h1:cHVFqxIbHfyTXp02JmWXk+ZADaSa87UZP+b3qL5Nz90=
github.com/swaggest/usecase v1.2.0/go.mod h1:oc5+QoAxG3Et5Gl9lRXgEOm00l4VN9gdVQSMIa5EeLY=
github.com/yudai/gojsondiff v1.0.0 h1:27cbfqXLVEJ1o8I6v3y9lg8Ydm53EKqHXAOMxEGlCOA=
github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg=
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 h1:BHyfKlQyqbsFN5p3IfnEUduWvb9is428/nNb5L3U01M=
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM=
go.nhat.io/aferomock v0.5.0 h1:lgxzzQPKu/k7o/P9pYdSE/Mlbu3jVXJprSJ9yuCI+CM=
go.nhat.io/aferomock v0.5.0/go.mod h1:DexRX1DiNRZwfGYrMdC5zjA09Mw95LrfYceLBlPZd5Y=
go.nhat.io/cookiejar v0.2.0 h1:8y1klLfncgXFpKecm4HsgGUJQgudD0/rfEmg1JfSMnQ=
go.nhat.io/cookiejar v0.2.0/go.mod h1:EQV3jWubtCQAVL9PhV+YNt/WjXJfyFdN8KZmzJeoLEM=
go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU=
go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
Expand Down
23 changes: 12 additions & 11 deletions type.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,15 @@ package gobist
import (
"encoding/json"
"fmt"
fp "github.com/nikolaydubina/fpmoney"
)

type Quote struct {
Symbol string `json:"symbol"`
Name string `json:"name"`
Price float64 `json:"price"`
History History `json:"history,omitempty"`
Error string `json:"error,omitempty"`
Symbol string `json:"symbol"`
Name string `json:"name"`
Price fp.Amount `json:"price"`
History History `json:"history,omitempty"`
Error string `json:"error,omitempty"`
}

func (q *Quote) ToJson() string {
Expand All @@ -29,25 +30,25 @@ type History struct {
}

func (h *History) SetBegin(d string, price float64) {
h.Begin = HistoryData{d, price}
h.Begin = HistoryData{d, fp.FromFloat(price, fp.TRY)}
}

func (h *History) SetEnd(d string, price float64) {
h.End = HistoryData{d, price}
h.End = HistoryData{d, fp.FromFloat(price, fp.TRY)}
}

func (h *History) IsValid() bool {
return h.Begin.Date != "" && h.End.Date != ""
}

type HistoryData struct {
Date string `json:"date,omitempty"`
Price float64 `json:"price,omitempty"`
Date string `json:"date,omitempty"`
Price fp.Amount `json:"price,omitempty"`
}

type HistoryChange struct {
ByRatio float64 `json:"byRatio"`
ByAmount float64 `json:"byAmount"`
ByRatio fp.Amount `json:"byRatio"`
ByAmount fp.Amount `json:"byAmount"`
}

type Symbol struct {
Expand Down

0 comments on commit af099ff

Please sign in to comment.