def archive_many(call: APICall, company_id, request: BatchRequest): results, failures = run_batch_operation( func=partial(ModelBLL.archive_model, company_id=company_id), ids=request.ids, ) call.result.data_model = BatchResponse( succeeded=[ dict(id=_id, archived=bool(archived)) for _id, archived in results ], failed=failures, )
def archive_many(call: APICall, company_id, request: TaskBatchRequest): results, failures = run_batch_operation( func=partial( archive_task, company_id=company_id, status_message=request.status_message, status_reason=request.status_reason, ), ids=request.ids, ) call.result.data_model = BatchResponse( succeeded=[ dict(id=_id, archived=bool(archived)) for _id, archived in results ], failed=failures, )
def delete(call: APICall, company_id, request: ModelsDeleteManyRequest): results, failures = run_batch_operation( func=partial(ModelBLL.delete_model, company_id=company_id, force=request.force), ids=request.ids, ) if results: projects = set(model.project for _, (_, model) in results) _reset_cached_tags(company_id, projects=list(projects)) call.result.data_model = BatchResponse( succeeded=[ dict(id=_id, deleted=bool(deleted), url=model.uri) for _id, (deleted, model) in results ], failed=failures, )
def publish_many(call: APICall, company_id, request: ModelsPublishManyRequest): results, failures = run_batch_operation( func=partial( ModelBLL.publish_model, company_id=company_id, force_publish_task=request.force_publish_task, publish_task_func=publish_task if request.publish_task else None, ), ids=request.ids, ) call.result.data_model = BatchResponse( succeeded=[ dict( id=_id, updated=bool(updated), published_task=published_task.to_struct() if published_task else None, ) for _id, (updated, published_task) in results ], failed=failures, )