func Delete()

in cfn-resources/project/cmd/resource/resource.go [130:184]


func Delete(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
	setup()

	client, err := util.CreateMongoDBClient(*currentModel.ApiKeys.PublicKey, *currentModel.ApiKeys.PrivateKey)
	if err != nil {
		return handler.ProgressEvent{}, err

	}
	log.Debug("Delete Debug whwoooo hoooo!")
	log.Debugf("Delete Project prevModel:%+v currentModel:%+v", *prevModel, *currentModel)

	var id string
	if currentModel.Id != nil {
		id = *currentModel.Id
	}

	if len(id) == 0 {
		name := *currentModel.Name
		if len(name) > 0 {
			log.Debugf("Project id was nil, try lookup name:%s", name)
			project, _, err := client.Projects.GetOneProjectByName(context.Background(), name)
			if err != nil {
				return handler.ProgressEvent{
					Message:          err.Error(),
					HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, err
			}
			log.Debugf("Looked up project:%+v", project)
			id = project.ID
		} else {
			err := fmt.Errorf("@@@@Error deleting project. No Id or Name found currentModel:%+v)", currentModel)
			return handler.ProgressEvent{
				Message:          err.Error(),
				HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, err
		}
	}
	log.Debugf("Deleting project with id(%s)", id)

	_, err = client.Projects.Delete(context.Background(), id)
	if err != nil {
		//return handler.ProgressEvent{}, fmt.Errorf("####error deleting project with id(%s): %s", id, err)
		log.Warnf("####error deleting project with id(%s): %s", id, err)

		return handler.ProgressEvent{
			OperationStatus:  handler.Failed,
			Message:          "Resource Not Found",
			HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound}, nil
	}

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