func()

in api/api_fs_project.go [23:75]


func (a *FsProjectApiService) ListProjects() (ListProjectsResponse, error) {
	request := paifeaturestore.ListProjectsRequest{}
	request.SetName(a.client.cfg.ProjectName)

	response, err := a.client.ListProjects(&a.client.instanceId, &request)
	var (
		localVarReturnValue ListProjectsResponse
	)

	if err != nil {
		return localVarReturnValue, err
	}

	var projects []*Project
	for _, projectItem := range response.Body.Projects {
		if id, err := strconv.Atoi(*projectItem.ProjectId); err == nil {
			project := Project{
				ProjectId:   id,
				ProjectName: *projectItem.Name,
			}
			if id, err := strconv.Atoi(*projectItem.OfflineDatasourceId); err == nil {
				project.OfflineDatasourceId = id
			}
			if id, err := strconv.Atoi(*projectItem.OnlineDatasourceId); err == nil {
				project.OnlineDatasourceId = id
			}

			switch *projectItem.OfflineDatasourceType {
			case "MaxCompute":
				project.OfflineDatasourceType = constants.Datasource_Type_MaxCompute
			}

			switch *projectItem.OnlineDatasourceType {
			case "Hologres":
				project.OnlineDatasourceType = constants.Datasource_Type_Hologres
			case "GraphCompute":
				project.OnlineDatasourceType = constants.Datasource_Type_IGraph
			case "Tablestore":
				project.OnlineDatasourceType = constants.Datasource_Type_TableStore
			case "FeatureDB":
				project.OnlineDatasourceType = constants.Datasource_Type_FeatureDB
			}

			project.InstanceId = a.client.instanceId

			projects = append(projects, &project)
		}
	}

	localVarReturnValue.Projects = projects

	return localVarReturnValue, nil
}