2022-05-22 14:09:46 -04:00
|
|
|
from threading import Thread
|
|
|
|
|
|
|
|
from ...utils import http_get
|
|
|
|
from .Controller import Controller
|
|
|
|
import ceo.tui.utils as tui_utils
|
|
|
|
|
|
|
|
|
|
|
|
class GetPositionsController(Controller):
|
|
|
|
def __init__(self, model, app):
|
|
|
|
super().__init__(model, app)
|
|
|
|
|
|
|
|
def lookup_positions_async(self):
|
|
|
|
self.view.flash_text.set_text('Looking up positions...')
|
|
|
|
Thread(target=self.lookup_positions_sync).start()
|
|
|
|
|
|
|
|
def lookup_positions_sync(self):
|
|
|
|
resp = http_get('/api/positions')
|
|
|
|
try:
|
|
|
|
positions = tui_utils.handle_sync_response(resp, self)
|
|
|
|
except Controller.RequestFailed:
|
|
|
|
return
|
2023-01-23 02:26:13 -05:00
|
|
|
for pos, usernames in positions.items():
|
|
|
|
self.model.positions[pos] = ','.join(usernames)
|
2022-05-22 14:09:46 -04:00
|
|
|
|
|
|
|
def target():
|
|
|
|
self.view.flash_text.set_text('')
|
|
|
|
self.view.update_fields()
|
|
|
|
|
|
|
|
self.app.run_in_main_loop(target)
|