Files
niri/do.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
}