in tools/endpoint.go [60:125]
func endpointParse(srcpath string) (string, error) {
_, err := os.Stat(srcpath)
if err != nil {
return "", errors.New("Source file error")
}
data, err := ioutil.ReadFile(srcpath)
if err != nil {
return "", err
}
endponit := &Endpoints{}
err = json.Unmarshal(data, endponit)
if err != nil || len(endponit.DocumentID) == 0 {
return "", err
}
realEndpoints := &RealEndpoints{}
for key := range endponit.GlobalEndpoints {
if endponit.DocumentID[key] == "" {
endponit.DocumentID[key] = "sdk"
}
}
for key := range endponit.RegionalEndpointPattern {
if endponit.DocumentID[key] == "" {
endponit.DocumentID[key] = "sdk"
}
}
for key := range endponit.RegionalEndpoints {
if endponit.DocumentID[key] == "" {
endponit.DocumentID[key] = "sdk"
}
}
for key, value := range endponit.DocumentID {
realEndpoint := Product{
Code: key,
LocationServiceCode: key,
DocumentID: value,
GlobalEndpoint: endponit.GlobalEndpoints[key],
RegionalEndpointPattern: endponit.RegionalEndpointPattern[key],
}
if realEndpoint.DocumentID == "sdk" {
realEndpoint.DocumentID = ""
}
for key1, value1 := range endponit.LocationCodeMapping {
if value1 == key {
realEndpoint.Code = key1
}
}
for key2, value2 := range endponit.RegionalEndpoints[key] {
regionalEndpoint := RegionalEndpoint{
Region: key2,
Endpoint: value2,
}
realEndpoint.RegionalEndpoints = append(realEndpoint.RegionalEndpoints, regionalEndpoint)
}
realEndpoints.Products = append(realEndpoints.Products, realEndpoint)
}
byte, err := json.MarshalIndent(realEndpoints, "", "\t")
if err != nil {
return "", err
}
return string(byte), err
}