use get_timer_data_for_context in start_timer and don't expect hierarchy

This commit is contained in:
iLLiCiTiT 2021-12-16 16:54:16 +01:00
parent 9ec197acda
commit 246bf8f140
2 changed files with 18 additions and 44 deletions

View file

@ -39,17 +39,18 @@ class TimersManagerModuleRestApi:
async def start_timer(self, request):
data = await request.json()
try:
project_name = data['project_name']
asset_name = data['asset_name']
task_name = data['task_name']
hierarchy = data['hierarchy']
project_name = data["project_name"]
asset_name = data["asset_name"]
task_name = data["task_name"]
except KeyError:
log.error("Payload must contain fields 'project_name, " +
"'asset_name', 'task_name', 'hierarchy'")
log.error((
"Payload must contain fields 'project_name,"
" 'asset_name' and 'task_name'"
))
return Response(status=400)
self.module.stop_timers()
self.module.start_timer(project_name, asset_name, task_name, hierarchy)
self.module.start_timer(project_name, asset_name, task_name)
return Response(status=200)
async def stop_timer(self, request):

View file

@ -189,44 +189,17 @@ class TimersManager(OpenPypeModule, ITrayService):
"hierarchy": hierarchy_items
}
def start_timer(self, project_name, asset_name, task_name, hierarchy):
def start_timer(self, project_name, asset_name, task_name):
"""Start timer for passed context.
Args:
project_name (str): Project name
asset_name (str): Asset name
task_name (str): Task name
"""
Start timer for 'project_name', 'asset_name' and 'task_name'
Called from REST api by hosts.
Args:
project_name (string)
asset_name (string)
task_name (string)
hierarchy (string)
"""
dbconn = AvalonMongoDB()
dbconn.install()
dbconn.Session["AVALON_PROJECT"] = project_name
asset_doc = dbconn.find_one({
"type": "asset", "name": asset_name
})
if not asset_doc:
raise ValueError("Uknown asset {}".format(asset_name))
task_type = ''
try:
task_type = asset_doc["data"]["tasks"][task_name]["type"]
except KeyError:
self.log.warning("Couldn't find task_type for {}".
format(task_name))
hierarchy = hierarchy.split("\\")
hierarchy.append(asset_name)
data = {
"project_name": project_name,
"task_name": task_name,
"task_type": task_type,
"hierarchy": hierarchy
}
data = self.get_timer_data_for_context(
project_name, asset_name, task_name
)
self.timer_started(None, data)
def get_task_time(self, project_name, asset_name, task_name):