Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion apps/mappings/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
from apps.fyle.models import DependentFieldSetting
from fyle_integrations_imports.models import ImportLog
from fyle_integrations_imports.dataclasses import TaskSetting
from apps.sage_intacct.helpers import get_sage_intacct_connection
from apps.sage_intacct.enums import SageIntacctRestConnectionTypeEnum
from fyle_intacct_api.utils import invalidate_sage_intacct_credentials
from fyle_integrations_imports.queues import chain_import_fields_to_fyle
from workers.helpers import RoutingKeyEnum, WorkerActionEnum, publish_to_rabbitmq
from apps.sage_intacct.helpers import get_sage_intacct_connection, validate_rest_api_connection
from apps.mappings.helpers import get_project_billable_field_detail_key, is_project_billable_sync_allowed
from apps.workspaces.models import (
Configuration,
Expand Down Expand Up @@ -306,6 +306,7 @@ def initiate_import_to_fyle(workspace_id: int, run_in_rabbitmq_worker: bool = Fa
:param workspace_id: Workspace Id
:return: None
"""
validate_rest_api_connection(workspace_id=workspace_id)
mapping_settings = MappingSetting.objects.filter(workspace_id=workspace_id, import_to_fyle=True)
configuration = Configuration.objects.get(workspace_id=workspace_id)
dependent_fields = DependentFieldSetting.objects.filter(workspace_id=workspace_id, is_import_enabled=True).first()
Expand Down
23 changes: 23 additions & 0 deletions apps/sage_intacct/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ def check_interval_and_sync_dimension(workspace_id: int, **kwargs) -> bool:
"""
workspace = Workspace.objects.get(pk=workspace_id)
try:
validate_rest_api_connection(workspace_id=workspace_id)
if workspace.destination_synced_at:
time_interval = datetime.now(timezone.utc) - workspace.source_synced_at

Expand Down Expand Up @@ -137,3 +138,25 @@ def sync_dimensions(workspace_id: int, dimensions: list = []) -> None:

workspace.destination_synced_at = datetime.now()
workspace.save(update_fields=['destination_synced_at'])


def validate_rest_api_connection(workspace_id: int) -> None:
"""
Validate REST API connection for orgs and migrated them to rest api
:param workspace_id: Workspace ID
:return: None
"""
migrated_to_rest_api = FeatureConfig.get_feature_config(workspace_id=workspace_id, key='migrated_to_rest_api')
if migrated_to_rest_api:
return

try:
sage_intacct_connection = SageIntacctRestConnector(workspace_id=workspace_id)
sage_intacct_connection.connection.locations.count()
FeatureConfig.objects.filter(workspace_id=workspace_id, migrated_to_rest_api=False).update(
migrated_to_rest_api=True,
updated_at=datetime.now(timezone.utc)
)
sync_dimensions(workspace_id=workspace_id)
except Exception as e:
logger.info('REST API is not working for workspace_id - %s, error - %s', workspace_id, e)
Loading