Package coprs :: Package logic :: Module actions_logic
[hide private]
[frames] | no frames]

Source Code for Module coprs.logic.actions_logic

 1  from coprs import db 
 2  from coprs import models 
 3  from coprs import helpers 
4 5 6 -class ActionsLogic(object):
7 @classmethod
8 - def get(cls, action_id):
9 """ Return single action identified by `action_id` """ 10 query = models.Action.query.filter(models.Action.id == action_id) 11 return query
12 13 @classmethod
14 - def get_waiting(cls):
15 """ Return actions that aren't finished """ 16 query = (models.Action.query 17 .filter(models.Action.result == 18 helpers.BackendResultEnum('waiting')) 19 .filter(models.Action.action_type != 20 helpers.ActionTypeEnum('legal-flag')) 21 .order_by(models.Action.created_on.asc())) 22 23 return query
24 25 @classmethod
26 - def get_by_ids(cls, ids):
27 """ Return actions matching passed `ids` """ 28 return models.Action.query.filter(models.Action.id.in_(ids))
29 30 @classmethod
31 - def update_state_from_dict(cls, action, upd_dict):
32 """ 33 Update `action` object with `upd_dict` data 34 35 Updates result, message and ended_on parameters. 36 """ 37 for attr in ['result', 'message', 'ended_on']: 38 value = upd_dict.get(attr, None) 39 if value: 40 setattr(action, attr, value) 41 42 db.session.add(action)
43