func Read()

in cfn-resources/project/cmd/resource/resource.go [57:114]


func Read(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
	setup()
	//spew.Dump(currentModel)
	client, err := util.CreateMongoDBClient(*currentModel.ApiKeys.PublicKey, *currentModel.ApiKeys.PrivateKey)
	if err != nil {
		//return handler.ProgressEvent{}, err
		return handler.ProgressEvent{
			Message:          err.Error(),
			HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, err
	}

	name := *currentModel.Name

	if len(name) > 0 {
		project, _, err := client.Projects.GetOneProjectByName(context.Background(), name)
		if err != nil {
			return handler.ProgressEvent{
				OperationStatus:  handler.Failed,
				Message:          "Resource Not Found",
				HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, nil
		}
		currentModel.Name = &project.Name
		currentModel.OrgId = &project.OrgID
		currentModel.Created = &project.Created
		currentModel.ClusterCount = &project.ClusterCount

		if err == nil {
			return handler.ProgressEvent{
				OperationStatus: handler.Success,
				Message:         "Read Complete",
				ResourceModel:   currentModel,
			}, nil
		}
	}

	id := *currentModel.Id
	log.Debugf("Looking for project: %s", id)
	project, _, err := client.Projects.GetOneProject(context.Background(), id)
	if err != nil {
		//return handler.ProgressEvent{}, fmt.Errorf(
		log.Debugf("Read - error reading project with id(%s): %s", id, err)
		return handler.ProgressEvent{
			OperationStatus:  handler.Failed,
			Message:          "Resource Not Found",
			HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, nil
	}

	currentModel.Name = &project.Name
	currentModel.OrgId = &project.OrgID
	currentModel.Created = &project.Created
	currentModel.ClusterCount = &project.ClusterCount

	return handler.ProgressEvent{
		OperationStatus: handler.Success,
		Message:         "Read Complete",
		ResourceModel:   currentModel,
	}, nil
}