in controller/ad/ad.go [198:224]
func (c controller) CreateAnomalyDetector(ctx context.Context, r entity.CreateDetectorRequest) (*string, error) {
if err := validateCreateRequest(r); err != nil {
return nil, err
}
payload, err := admapper.MapToCreateDetector(r)
if err != nil {
return nil, err
}
response, err := c.gateway.CreateDetector(ctx, payload)
if err != nil {
return nil, processEntityError(err)
}
var data map[string]interface{}
_ = json.Unmarshal(response, &data)
detectorID := fmt.Sprintf("%s", data["_id"])
if !r.Start {
return mapper.StringToStringPtr(detectorID), nil
}
err = c.StartDetector(ctx, detectorID)
if err != nil {
return nil, fmt.Errorf("detector is created with id: %s, but failed to start due to %v", detectorID, err)
}
return mapper.StringToStringPtr(detectorID), nil
}