MCPcopy Create free account
hub / github.com/diffgram/diffgram / flow_update_core

Function flow_update_core

default/methods/action/workflow_update.py:69–111  ·  view source on GitHub ↗
(
    session,
    project,
    workflow,
    name,
    active,
    time_window,
    mode,
    log,
    member)

Source from the content-addressed store, hash-verified

67
68
69def flow_update_core(
70 session,
71 project,
72 workflow,
73 name,
74 active,
75 time_window,
76 mode,
77 log,
78 member):
79 if mode == "ARCHIVE":
80 workflow.archived = True
81 workflow.active = False
82 remove_job_scheduling(workflow_id = workflow.id, project_id = workflow.project_id)
83 session.add(workflow)
84
85 return log
86
87 if mode == "UPDATE":
88 session.add(workflow)
89
90 workflow.is_new = False
91
92 workflow.name = name
93 workflow.active = active
94 if not workflow.active and workflow.has_time_trigger(session = session):
95 remove_job_scheduling(workflow_id = workflow.id, project_id = workflow.project_id)
96 else:
97 if workflow.has_time_trigger(session = session):
98 first_action = workflow.get_first_action(session = session)
99 add_job_scheduling(workflow_id = workflow.id,
100 project_id = workflow.project_id,
101 cron_expression = first_action.trigger_data.get('cron_expression', None))
102 workflow.time_window = time_window
103 workflow.member_updated = member
104
105 Workflow.update_string_id(
106 session = session,
107 workflow = workflow)
108
109 log['info']['update'] = "Success"
110
111 return log

Callers 1

api_workflow_updateFunction · 0.85

Calls 7

remove_job_schedulingFunction · 0.90
add_job_schedulingFunction · 0.90
has_time_triggerMethod · 0.80
get_first_actionMethod · 0.80
update_string_idMethod · 0.80
addMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected