status.go
changeset 106 356507eb8db6
parent 105 e2a16e19eb8b
child 108 3f21113728f4
equal deleted inserted replaced
105:e2a16e19eb8b 106:356507eb8db6
    46 	r, err := rest.API(req)
    46 	r, err := rest.API(req)
    47 	if err != nil {
    47 	if err != nil {
    48 		return fmt.Errorf("status/%s API query: %s", subquery, err.Error())
    48 		return fmt.Errorf("status/%s API query: %s", subquery, err.Error())
    49 	}
    49 	}
    50 
    50 
       
    51 	// Check for error reply
       
    52 	var errorResult Error
       
    53 	if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil {
       
    54 		// The empty object is not an error
       
    55 		if errorResult.Text != "" {
       
    56 			return fmt.Errorf("%s", errorResult.Text)
       
    57 		}
       
    58 	}
       
    59 
       
    60 	// Not an error reply; let's unmarshal the data
    51 	err = json.Unmarshal([]byte(r.Body), &data)
    61 	err = json.Unmarshal([]byte(r.Body), &data)
    52 	if err != nil {
    62 	if err != nil {
    53 		var errorRes Error
       
    54 		err2 := json.Unmarshal([]byte(r.Body), &errorRes)
       
    55 		if err2 == nil {
       
    56 			return fmt.Errorf("%s", errorRes.Text)
       
    57 		}
       
    58 		return fmt.Errorf("status/%s API: %s", subquery, err.Error())
    63 		return fmt.Errorf("status/%s API: %s", subquery, err.Error())
    59 	}
    64 	}
    60 
       
    61 	return nil
    65 	return nil
    62 }
    66 }
    63 
    67 
    64 // updateStatusData updates the statuses
    68 // updateStatusData updates the statuses
    65 // The subquery can be empty or "status" (to post a status), "delete" (for
    69 // The subquery can be empty or "status" (to post a status), "delete" (for
   129 	}
   133 	}
   130 
   134 
   131 	// Check for error reply
   135 	// Check for error reply
   132 	var errorResult Error
   136 	var errorResult Error
   133 	if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil {
   137 	if err := json.Unmarshal([]byte(r.Body), &errorResult); err == nil {
   134 		return fmt.Errorf("%s", errorResult.Text)
   138 		// The empty object is not an error
   135 	}
   139 		if errorResult.Text != "" {
   136 
   140 			return fmt.Errorf("%s", errorResult.Text)
   137 	// Not an error reply; let's unmarshall the data
   141 		}
       
   142 	}
       
   143 
       
   144 	// Not an error reply; let's unmarshal the data
   138 	err = json.Unmarshal([]byte(r.Body), &data)
   145 	err = json.Unmarshal([]byte(r.Body), &data)
   139 	if err != nil {
   146 	if err != nil {
   140 		return fmt.Errorf("status/%s API: %s", subquery, err.Error())
   147 		return fmt.Errorf("status/%s API: %s", subquery, err.Error())
   141 	}
   148 	}
   142 	return nil
   149 	return nil