Skip to content

Commit

Permalink
pre v1.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
MickMake committed Feb 23, 2022
1 parent 1d177fe commit 0458a69
Show file tree
Hide file tree
Showing 2,990 changed files with 254,792 additions and 248,913 deletions.
2,125 changes: 2,060 additions & 65 deletions .idea/workspace.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Note:

This is currently under development.

So far I have mapped out all the API calls, but now figuring out JSON POST data formats. This is around 20% complete.
So far I have mapped out all the API calls, but now figuring out JSON POST data formats.

It's tricky as their "API" changes regularly.

Expand Down
167 changes: 106 additions & 61 deletions cmd/cmd_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ package cmd

import (
"GoSungrow/Only"
"GoSungrow/iSolarCloud/api"
"GoSungrow/iSolarCloud/sungro/AppService/login"
"GoSungrow/iSolarCloud/AppService/login"
"fmt"
"github.com/spf13/cobra"
)

// ******************************************************************************** //
//
// ********************************************************************************
//
var cmdApi = &cobra.Command{
Use: "api",
Aliases: []string{},
Expand All @@ -32,7 +33,9 @@ func cmdApiFunc(cmd *cobra.Command, args []string) {
}
}

// ******************************************************************************** //
//
// ********************************************************************************
//
var cmdApiList = &cobra.Command{
Use: "ls",
Aliases: []string{"list"},
Expand Down Expand Up @@ -66,7 +69,49 @@ func cmdApiListFunc(cmd *cobra.Command, args []string) {
}
}

// ******************************************************************************** //
//
// ********************************************************************************
//
var cmdApiLogin = &cobra.Command{
Use: "login",
// Aliases: []string{""},
Short: fmt.Sprintf("Login to iSolarCloud"),
Long: fmt.Sprintf("Login to iSolarCloud"),
Example: PrintExamples("api login", ""),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.ProcessArgs,
Run: cmdApiLoginFunc,
Args: cobra.MinimumNArgs(0),
}

//goland:noinspection GoUnusedParameter
func cmdApiLoginFunc(cmd *cobra.Command, args []string) {
for range Only.Once {
Cmd.Error = SunGrow.Login(login.SunGrowAuth{
AppKey: Cmd.ApiAppKey,
UserAccount: Cmd.ApiUsername,
UserPassword: Cmd.ApiPassword,
TokenFile: Cmd.ApiTokenFile,
Force: true,
})
if Cmd.Error != nil {
break
}

SunGrow.Auth.Print()

if SunGrow.HasTokenChanged() {
Cmd.ApiLastLogin = SunGrow.GetLastLogin()
Cmd.ApiToken = SunGrow.GetToken()
Cmd.Error = writeConfig()
}
}
}

//
// ********************************************************************************
//
var cmdApiGet = &cobra.Command{
Use: "get",
// Aliases: []string{""},
Expand All @@ -83,92 +128,92 @@ var cmdApiGet = &cobra.Command{
//goland:noinspection GoUnusedParameter
func cmdApiGetFunc(cmd *cobra.Command, args []string) {
for range Only.Once {
args = fillArray(2, args)
// if args[1] == "" {
// args[1] = "{}"
// }
SunGrow.OutputType.SetJson()

ep := SunGrow.GetEndpoint(args[0])
if SunGrow.Error != nil {
Cmd.Error = SunGrow.Error
args = fillArray(2, args)
if args[0] == "all" {
Cmd.Error = SunGrow.AllCritical()
break
}
if ep.IsError() {
Cmd.Error = ep.GetError()

Cmd.Error = SunGrow.Get(args[0], args[1]).GetError()
if Cmd.Error != nil {
break
}
}
}

if args[1] != "" {
ep = ep.SetRequestByJson(api.Json(args[1]))
if ep.IsError() {
fmt.Println(ep.Help())
Cmd.Error = ep.GetError()
break
}
}
//
// ********************************************************************************
//
var cmdApiRaw = &cobra.Command{
Use: "raw",
// Aliases: []string{""},
Short: fmt.Sprintf("Raw details from iSolarCloud"),
Long: fmt.Sprintf("Raw details from iSolarCloud"),
Example: PrintExamples("api get", "<endpoint> [area]"),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.SunGrowArgs,
Run: cmdApiRawFunc,
Args: cobra.MinimumNArgs(1),
}

//goland:noinspection GoUnusedParameter
func cmdApiRawFunc(cmd *cobra.Command, args []string) {
for range Only.Once {
SunGrow.OutputType.SetRaw()

ep = ep.Call()
if ep.IsError() {
if Cmd.ApiGetRaw {
fmt.Printf("\n%v\n", ep.GetData(true))
}
fmt.Println(ep.Help())
Cmd.Error = ep.GetError()
args = fillArray(2, args)
if args[0] == "all" {
Cmd.Error = SunGrow.AllCritical()
break
}

Cmd.Error = ep.WriteFile()
Cmd.Error = SunGrow.Get(args[0], args[1]).GetError()
if Cmd.Error != nil {
break
}

if Cmd.ApiGetRaw {
fmt.Printf("\n%v\n", ep.GetData(true))
} else {
fmt.Printf("\n%v\n", ep.GetData(false))
}
}
}

// ******************************************************************************** //
var cmdApiLogin = &cobra.Command{
Use: "login",
//
// ********************************************************************************
//
var cmdApiSave = &cobra.Command{
Use: "save",
// Aliases: []string{""},
Short: fmt.Sprintf("Login to iSolarCloud"),
Long: fmt.Sprintf("Login to iSolarCloud"),
Example: PrintExamples("api login", ""),
Short: fmt.Sprintf("Save details from iSolarCloud"),
Long: fmt.Sprintf("Save details from iSolarCloud"),
Example: PrintExamples("api save", "<endpoint> [area]"),
DisableFlagParsing: false,
DisableFlagsInUseLine: false,
PreRunE: Cmd.ProcessArgs,
Run: cmdApiLoginFunc,
Args: cobra.MinimumNArgs(0),
PreRunE: Cmd.SunGrowArgs,
Run: cmdApiSaveFunc,
Args: cobra.MinimumNArgs(1),
}

//goland:noinspection GoUnusedParameter
func cmdApiLoginFunc(cmd *cobra.Command, args []string) {
func cmdApiSaveFunc(cmd *cobra.Command, args []string) {
for range Only.Once {
Cmd.Error = SunGrow.Login(login.SunGrowAuth{
AppKey: Cmd.ApiAppKey,
UserAccount: Cmd.ApiUsername,
UserPassword: Cmd.ApiPassword,
TokenFile: Cmd.ApiTokenFile,
Force: true,
})
if Cmd.Error != nil {
SunGrow.OutputType.SetFile()

args = fillArray(2, args)
if args[0] == "all" {
Cmd.Error = SunGrow.AllCritical()
break
}

SunGrow.Auth.Print()

if SunGrow.HasTokenChanged() {
Cmd.ApiLastLogin = SunGrow.GetLastLogin()
Cmd.ApiToken = SunGrow.GetToken()
Cmd.Error = writeConfig()
Cmd.Error = SunGrow.Get(args[0], args[1]).GetError()
if Cmd.Error != nil {
break
}
}
}

// ******************************************************************************** //
//
// ********************************************************************************
//
var cmdApiPut = &cobra.Command{
Use: "put",
Aliases: []string{"write"},
Expand Down
Loading

0 comments on commit 0458a69

Please sign in to comment.