Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
MickMake committed Feb 12, 2022
1 parent 01777fa commit 281052e
Show file tree
Hide file tree
Showing 7 changed files with 118 additions and 36 deletions.
28 changes: 14 additions & 14 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"fmt"
)

var url = ""
var Url = "/v1/reportService/getPowerDevicePointNames"

var _ api.Resource = (*Resource)(nil)

Expand Down Expand Up @@ -46,7 +46,24 @@ func (g Resource) Init() *Resource {
fmt.Println("Init()")
return &Resource{}
}

func Init() *Resource {
fmt.Println("Init()")
return &Resource{}

foo := Resource {
api.TypeEndPoint {
Area: api.GetArea(Resource{}),
Name: api.GetEndPoint(Resource{}),
Url: api.GetUrl(Url),
// Resource: nil,
Request: Request{},
Response: Response{},
// Get: nil,
// Put: nil,
Error: nil,
},
}
fmt.Printf("endpoint: %v\n", foo)

return &foo
}
7 changes: 3 additions & 4 deletions iSolarCloud/AppService/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -611,10 +611,9 @@ func init() {
fmt.Println("HEYHEYHEY")
// foo := e.Resource.GetResource()
// fmt.Printf("R:%v\n", foo)
foo := getPowerDevicePointNames.Resource{}
foo.Init()
getPowerDevicePointNames.Init()
(getPowerDevicePointNames.Resource)(e.Resource).Call()
e.Resource = getPowerDevicePointNames.Init()
fmt.Printf("Resource: %v\n", e.Resource)
// (getPowerDevicePointNames.Resource)(e.Resource).Call()
// e.Response = getPowerDevicePointNames.Resource{}
// e.Request = getPowerDevicePointNames.Resource{}
continue
Expand Down
28 changes: 28 additions & 0 deletions iSolarCloud/api/struct_areas.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,3 +107,31 @@ func (an *TypeAreaNames) SetResponse(area AreaName, endpoint EndPointName, ref i

return err
}

func (an *TypeAreaNames) GetRequest(area AreaName, endpoint EndPointName) interface{} {
var ret interface{}

for range Only.Once {
err := an.Exists(area, endpoint)
if err != nil {
break
}
ret = an.GetEndPoint(area, endpoint).Request
}

return ret
}

func (an *TypeAreaNames) GetResponse(area AreaName, endpoint EndPointName) interface{} {
var ret interface{}

for range Only.Once {
err := an.Exists(area, endpoint)
if err != nil {
break
}
ret = an.GetEndPoint(area, endpoint).Response
}

return ret
}
16 changes: 14 additions & 2 deletions iSolarCloud/api/struct_endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,16 +62,28 @@ type TypeEndPoint struct {
Name EndPointName `json:"name"`
Url *url.URL `json:"url"`

Resource interface{}
resource interface{}
Request interface{}
Response interface{}
Response interface{}

Get GetFunc
Put SetFunc

Error error
}

// func (p *TypeEndPoint) Call() Json {
// panic("implement me")
// }
//
// func (p *TypeEndPoint) GetResource() interface{} {
// panic("implement me")
// }

func (ps *TypeEndPoints) SetResource(ref interface{}) {

}

type EndPointName string

type Json string
Expand Down
50 changes: 38 additions & 12 deletions iSolarCloud/api/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,30 +83,56 @@ func CreateEndPoints(list [][]string) TypeEndPoints {
return endpoints
}

func (an *TypeAreaNames) GetRequest(area AreaName, endpoint EndPointName) interface{} {
var ret interface{}

func PackageName(v interface{}) string {
var ret string
for range Only.Once {
err := an.Exists(area, endpoint)
if err != nil {
if v == nil {
break
}

val := reflect.ValueOf(v)
if val.Kind() == reflect.Ptr {
ret = val.Elem().Type().PkgPath()
break
}
ret = an.GetEndPoint(area, endpoint).Request
}

ret = val.Type().PkgPath()
}
return ret
}

func (an *TypeAreaNames) GetResponse(area AreaName, endpoint EndPointName) interface{} {
var ret interface{}
func GetArea(v interface{}) AreaName {
var ret AreaName
for range Only.Once {
s := strings.Split(PackageName(v), "/")
if len(s) < 2 {
break
}
ret = AreaName(s[len(s)-1])
}
return ret
}

func GetEndPoint(v interface{}) EndPointName {
var ret EndPointName
for range Only.Once {
err := an.Exists(area, endpoint)
if err != nil {
s := strings.Split(PackageName(v), "/")
if len(s) < 2 {
break
}
ret = an.GetEndPoint(area, endpoint).Response
ret = EndPointName(s[len(s)-1])
}
return ret
}

func GetUrl(u string) *url.URL {
var ret *url.URL
for range Only.Once {
var err error
ret, err = url.Parse(u)
if err != nil {
ret = nil
}
}
return ret
}
4 changes: 2 additions & 2 deletions iSolarCloud/sungro.go
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ func (p *SunGro) ListEndpoints(area string) error {
if area == "" {
fmt.Printf("Listing all endpoints from all areas:\n")
table := tablewriter.NewWriter(os.Stdout)
table.SetHeader([]string{"Area", "EndPoint", "Url"})
table.SetHeader([]string{"Area", "Resource", "Url"})
table.SetBorder(true)
for _, area := range p.AreaNames.SortAreas() {
endpoints := p.AreaNames[area]
Expand All @@ -150,7 +150,7 @@ func (p *SunGro) ListEndpoints(area string) error {

fmt.Printf("Listing all endpoints from area '%s':\n", area)
table := tablewriter.NewWriter(os.Stdout)
table.SetHeader([]string{"EndPoint", "Url"})
table.SetHeader([]string{"Resource", "Url"})
table.SetBorder(true)
endpoints := p.AreaNames[api.AreaName(area)]
for _, endpoint := range endpoints.SortEndPoints() {
Expand Down

0 comments on commit 281052e

Please sign in to comment.