53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package niri
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
func (c *Client) DoAction(action Action) error {
|
|
// print request and response to console:
|
|
//
|
|
// io.Copy(os.Stdout, asJsonReader(action))
|
|
// r, err := readSocketRaw(c.GetSocketPath(), asJsonReader(action))
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
// io.Copy(os.Stdout, r)
|
|
// return nil
|
|
|
|
resp := readSocket[string](c.GetSocketPath(), asJsonReader(action))
|
|
if resp.Err != nil {
|
|
return errors.New(*resp.Err)
|
|
} else if resp.OK == nil {
|
|
return errors.New("unexpected response value: nil")
|
|
} else if *resp.OK != "Handled" {
|
|
return fmt.Errorf("unexpected response value: %s", *resp.OK)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (c *Client) Output(outputAction OutputActionRequest) error {
|
|
body := map[string]OutputActionRequest{"Output": outputAction}
|
|
|
|
// print request and response to console:
|
|
//
|
|
// io.Copy(os.Stdout, asJsonReader(body))
|
|
// r, err := readSocketRaw(c.GetSocketPath(), asJsonReader(body))
|
|
// if err != nil {
|
|
// return err
|
|
// }
|
|
// io.Copy(os.Stdout, r)
|
|
// return nil
|
|
|
|
resp := readSocket[outputActionResponse](c.GetSocketPath(), asJsonReader(body))
|
|
if resp.Err != nil {
|
|
return errors.New(*resp.Err)
|
|
} else if resp.OK == nil {
|
|
return errors.New("unexpected response value: nil")
|
|
} else if resp.OK.OutputConfigChanged != "Applied" {
|
|
return fmt.Errorf("unexpected response value: %s", resp.OK.OutputConfigChanged)
|
|
}
|
|
return nil
|
|
}
|