def upload_categories_to_fyle(workspace_id): """ Upload categories to Fyle """ fyle_credentials: FyleCredential = FyleCredential.objects.get( workspace_id=workspace_id) qbo_credentials: QBOCredential = QBOCredential.objects.get( workspace_id=workspace_id) fyle_connection = FyleConnector( refresh_token=fyle_credentials.refresh_token, workspace_id=workspace_id) qbo_connection = QBOConnector(credentials_object=qbo_credentials, workspace_id=workspace_id) fyle_connection.sync_categories(False) qbo_connection.sync_accounts() qbo_attributes: List[ DestinationAttribute] = DestinationAttribute.objects.filter( workspace_id=workspace_id, attribute_type='ACCOUNT').all() qbo_attributes = remove_duplicates(qbo_attributes) fyle_payload: List[Dict] = create_fyle_categories_payload( qbo_attributes, workspace_id) if fyle_payload: fyle_connection.connection.Categories.post(fyle_payload) fyle_connection.sync_categories(False) return qbo_attributes
def upload_categories_to_fyle(workspace_id): """ Upload categories to Fyle """ try: fyle_credentials: FyleCredential = FyleCredential.objects.get( workspace_id=workspace_id) xero_credentials: XeroCredentials = XeroCredentials.objects.get( workspace_id=workspace_id) fyle_connection = FyleConnector( refresh_token=fyle_credentials.refresh_token, workspace_id=workspace_id) xero_connection = XeroConnector(credentials_object=xero_credentials, workspace_id=workspace_id) fyle_connection.sync_categories(False) xero_connection.sync_accounts() xero_attributes = DestinationAttribute.objects.filter( attribute_type='ACCOUNT', workspace_id=workspace_id) xero_attributes = remove_duplicates(xero_attributes) fyle_payload: List[Dict] = create_fyle_categories_payload( xero_attributes, workspace_id) if fyle_payload: fyle_connection.connection.Categories.post(fyle_payload) fyle_connection.sync_categories(False) return xero_attributes except XeroCredentials.DoesNotExist: logger.error( 'Xero Credentials not found for workspace_id %s', workspace_id, )