12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package service
- import (
- json2 "encoding/json"
- "time"
- "github.com/IceWhaleTech/CasaOS/model"
- "github.com/IceWhaleTech/CasaOS/pkg/config"
- "github.com/IceWhaleTech/CasaOS/pkg/utils/httper"
- "github.com/tidwall/gjson"
- )
- type CasaService interface {
- GetCasaosVersion() model.Version
- }
- type casaService struct{}
- /**
- * @description: get remote version
- * @return {model.Version}
- */
- func (o *casaService) GetCasaosVersion() model.Version {
- keyName := "casa_version"
- var dataStr string
- var version model.Version
- if result, ok := Cache.Get(keyName); ok {
- dataStr, ok = result.(string)
- if ok {
- data := gjson.Get(dataStr, "data")
- json2.Unmarshal([]byte(data.String()), &version)
- return version
- }
- }
- v := httper.OasisGet(config.ServerInfo.ServerApi + "/v1/sys/version")
- data := gjson.Get(v, "data")
- json2.Unmarshal([]byte(data.String()), &version)
- if len(version.Version) > 0 {
- Cache.Set(keyName, v, time.Minute*20)
- }
- return version
- }
- func NewCasaService() CasaService {
- return &casaService{}
- }
|