Cleaned up code + responded to comments

This commit is contained in:
Derek Meer 2018-08-03 10:29:46 -07:00
parent 681d74635f
commit 5b5ec0cd67

View file

@ -28,21 +28,27 @@ func URIToUID(req *http.Request, cfg config.Dendrite) util.JSONResponse {
} }
} }
baseReqURL := "http://" + string(cfg.Matrix.ServerName) + "/_matrix/app/unstable/thirdparty/user/" baseReqURL := "http://" + string(cfg.Matrix.ServerName) + "/_matrix/app/unstable/thirdparty/user/"
//appServices := cfg.Derived.ApplicationServices
for _, appservice := range cfg.Derived.ApplicationServices { for _, appservice := range cfg.Derived.ApplicationServices {
// Check all the fields associated with each application service // Check all the fields associated with each application service
if appservice.IsInterestedInUserID(uri) { if !appservice.IsInterestedInUserID(uri) {
continue
}
// call the application service // call the application service
reqURL := baseReqURL + appservice.ID + "?access_token=" + appservice.HSToken + reqURL := baseReqURL + appservice.ID + "?access_token=" + appservice.HSToken +
"&fields=" + uri "&fields=" + uri
resp, err := http.Get(reqURL) resp, err := http.Get(reqURL)
// take the first successful match and send that back to the user // take the first successful match and send that back to the user
if err == nil { if err != nil {
continue
}
// decode the JSON to get the field we want
body, _ := ioutil.ReadAll(resp.Body) body, _ := ioutil.ReadAll(resp.Body)
respMap := map[string]interface{}{} respMap := map[string]interface{}{}
err := json.Unmarshal(body, &respMap) if err := json.Unmarshal(body, &respMap); err != nil {
if err != nil { return util.JSONResponse{
panic(err) Code: http.StatusBadRequest,
JSON: jsonerror.NotJSON("The request body could not be decoded into valid JSON. " + err.Error()),
}
} }
if userID, ok := respMap["userid"].(string); ok { if userID, ok := respMap["userid"].(string); ok {
return util.JSONResponse{ return util.JSONResponse{
@ -51,8 +57,6 @@ func URIToUID(req *http.Request, cfg config.Dendrite) util.JSONResponse {
} }
} }
} }
}
}
return util.JSONResponse{ return util.JSONResponse{
Code: http.StatusNotFound, Code: http.StatusNotFound,
JSON: jsonerror.NotFound("URI not supported by app services"), JSON: jsonerror.NotFound("URI not supported by app services"),