mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
#21 - Safer handling of hierarchy
'hierarchy' in asset might not be used everywhere Added missed file with route definition
This commit is contained in:
parent
b138bdd202
commit
1675d6690b
3 changed files with 45 additions and 3 deletions
|
|
@ -1167,7 +1167,8 @@ def change_timer_to_current_context():
|
|||
data = {
|
||||
"project_name": avalon.io.Session["AVALON_PROJECT"],
|
||||
"asset_name": avalon.io.Session["AVALON_ASSET"],
|
||||
"task_name": avalon.io.Session["AVALON_TASK"]
|
||||
"task_name": avalon.io.Session["AVALON_TASK"],
|
||||
"hierarchy": get_hierarchy()
|
||||
}
|
||||
|
||||
requests.post(rest_api_url, json=data)
|
||||
|
|
|
|||
40
pype/modules/timers_manager/rest_api.py
Normal file
40
pype/modules/timers_manager/rest_api.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
from aiohttp.web_response import Response
|
||||
from pype.api import Logger
|
||||
|
||||
log = Logger().get_logger("Event processor")
|
||||
|
||||
class TimersManagerModuleRestApi:
|
||||
"""
|
||||
REST API endpoint used for calling from hosts when context change
|
||||
happens in Workfile app.
|
||||
"""
|
||||
def __init__(self, user_module, server_manager):
|
||||
self.module = user_module
|
||||
self.server_manager = server_manager
|
||||
|
||||
self.prefix = "/timers_manager"
|
||||
|
||||
self.register()
|
||||
|
||||
def register(self):
|
||||
self.server_manager.add_route(
|
||||
"POST",
|
||||
self.prefix + "/start_timer",
|
||||
self.start_timer
|
||||
)
|
||||
|
||||
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']
|
||||
except KeyError:
|
||||
log.error("Payload must contain fields 'project_name, " +
|
||||
"'asset_name', 'task_name', 'hierarchy'")
|
||||
return Response(status=400)
|
||||
|
||||
self.module.stop_timers()
|
||||
self.module.start_timer(project_name, asset_name, task_name, hierarchy)
|
||||
return Response(status=200)
|
||||
|
|
@ -81,7 +81,7 @@ class TimersManager(PypeModule, ITrayService, IIdleManager, IWebServerRoutes):
|
|||
self.rest_api_obj = TimersManagerModuleRestApi(self,
|
||||
server_manager)
|
||||
|
||||
def start_timer(self, project_name, asset_name, task_name):
|
||||
def start_timer(self, project_name, asset_name, task_name, hierarchy):
|
||||
"""
|
||||
Start timer for 'project_name', 'asset_name' and 'task_name'
|
||||
|
||||
|
|
@ -91,6 +91,7 @@ class TimersManager(PypeModule, ITrayService, IIdleManager, IWebServerRoutes):
|
|||
project_name (string)
|
||||
asset_name (string)
|
||||
task_name (string)
|
||||
hierarchy (string)
|
||||
"""
|
||||
dbconn = AvalonMongoDB()
|
||||
dbconn.install()
|
||||
|
|
@ -109,7 +110,7 @@ class TimersManager(PypeModule, ITrayService, IIdleManager, IWebServerRoutes):
|
|||
self.log.warning("Couldn't find task_type for {}".
|
||||
format(task_name))
|
||||
|
||||
hierarchy = asset_doc["data"]["hierarchy"].split("\\")
|
||||
hierarchy = hierarchy.split("\\")
|
||||
hierarchy.append(asset_name)
|
||||
|
||||
data = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue