9 1081cf75 2024-11-04 o func (c *Client) Login(name, password string) error {
11 1081cf75 2024-11-04 o if err := c.init(); err != nil {
16 1081cf75 2024-11-04 o params := map[string]interface{}{
17 1081cf75 2024-11-04 o "username_or_email": name,
18 1081cf75 2024-11-04 o "password": password,
20 1081cf75 2024-11-04 o resp, err := c.post("/user/login", params)
21 1081cf75 2024-11-04 o if err != nil {
24 1081cf75 2024-11-04 o defer resp.Body.Close()
25 1081cf75 2024-11-04 o if resp.StatusCode != http.StatusOK {
26 1081cf75 2024-11-04 o return fmt.Errorf("remote status %s: %w", resp.Status, decodeError(resp.Body))
29 1081cf75 2024-11-04 o var response struct {
32 1081cf75 2024-11-04 o if err := json.NewDecoder(resp.Body).Decode(&response); err != nil {
33 1081cf75 2024-11-04 o return fmt.Errorf("decode login response: %w", err)
35 1081cf75 2024-11-04 o c.authToken = response.JWT
39 1081cf75 2024-11-04 o func (c *Client) Authenticated() bool {
40 1081cf75 2024-11-04 o return c.authToken != ""