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
}