func RegisterWithAuth(host string, profile *core.Client) (client *core.Client, err error) { if conf.CLIENT_GROUP_TOKEN == "" { fmt.Println("clientgroup token not set, register as a public client (can only access public data)") } profile_jsonstream, err := json.Marshal(profile) profile_path := conf.DATA_PATH + "/clientprofile.json" ioutil.WriteFile(profile_path, []byte(profile_jsonstream), 0644) form := httpclient.NewForm() form.AddFile("profile", profile_path) if err := form.Create(); err != nil { return nil, err } var headers httpclient.Header if conf.CLIENT_GROUP_TOKEN == "" { headers = httpclient.Header{ "Content-Type": []string{form.ContentType}, "Content-Length": []string{strconv.FormatInt(form.Length, 10)}, } } else { headers = httpclient.Header{ "Content-Type": []string{form.ContentType}, "Content-Length": []string{strconv.FormatInt(form.Length, 10)}, "Authorization": []string{"CG_TOKEN " + conf.CLIENT_GROUP_TOKEN}, } } targetUrl := host + "/client" resp, err := httpclient.Post(targetUrl, headers, form.Reader, nil) if err != nil { return nil, err } defer resp.Body.Close() jsonstream, err := ioutil.ReadAll(resp.Body) response := new(ClientResponse) if err = json.Unmarshal(jsonstream, response); err != nil { return nil, errors.New("fail to unmashal response:" + string(jsonstream)) } if len(response.Errs) > 0 { return nil, errors.New(strings.Join(response.Errs, ",")) } client = &response.Data return }
func RegisterWithAuth(host string, profile *core.Client) (client *core.Client, err error) { if conf.CLIENT_USERNAME == "public" { fmt.Println("client username and password not configured, register as a public user (can only access public data)") } profile_jsonstream, err := json.Marshal(profile) profile_path := conf.DATA_PATH + "/clientprofile.json" ioutil.WriteFile(profile_path, []byte(profile_jsonstream), 0644) form := httpclient.NewForm() form.AddFile("profile", profile_path) if err := form.Create(); err != nil { return nil, err } headers := httpclient.Header{ "Content-Type": form.ContentType, "Content-Length": strconv.FormatInt(form.Length, 10), } user := httpclient.GetUserByBasicAuth(conf.CLIENT_USERNAME, conf.CLIENT_PASSWORD) targetUrl := host + "/client" resp, err := httpclient.Post(targetUrl, headers, form.Reader, user) if err != nil { return nil, err } defer resp.Body.Close() jsonstream, err := ioutil.ReadAll(resp.Body) response := new(ClientResponse) if err = json.Unmarshal(jsonstream, response); err != nil { return nil, errors.New("fail to unmashal response:" + string(jsonstream)) } if len(response.Errs) > 0 { return nil, errors.New(strings.Join(response.Errs, ",")) } client = &response.Data return }