in datahub/implement.go [762:793]
func (datahub *DataHub) CreateConnectorWithPara(projectName, topicName string, para *CreateConnectorParameter) (*CreateConnectorResult, error) {
if !util.CheckProjectName(projectName) {
return nil, NewInvalidParameterErrorWithMessage(projectNameInvalid)
}
if !util.CheckTopicName(topicName) {
return nil, NewInvalidParameterErrorWithMessage(topicNameInvalid)
}
if para == nil {
return nil, NewInvalidParameterErrorWithMessage(parameterNull)
}
if !validateConnectorType(para.ConnectorType) {
return nil, NewInvalidParameterErrorWithMessage(parameterTypeInvalid)
}
path := fmt.Sprintf(connectorPath, projectName, topicName, para.ConnectorType.String())
reqPara := &RequestParameter{
Header: map[string]string{httpHeaderContentType: httpJsonContent},
}
ccr := &CreateConnectorRequest{
Action: "create",
Type: para.ConnectorType,
SinkStartTime: para.SinkStartTime,
ColumnFields: para.ColumnFields,
ColumnNameMap: para.ColumnNameMap,
Config: para.Config,
}
respBody, commonResp, err := datahub.Client.Post(path, ccr, reqPara)
if err != nil {
return nil, err
}
return NewCreateConnectorResult(respBody, commonResp)
}