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 8 @classmethod
9 - def get(cls, action_id):
10 """ 11 Return single action identified by `action_id` 12 """ 13 14 query = models.Action.query.filter(models.Action.id == action_id) 15 return query
16 17 @classmethod
18 - def get_waiting(cls):
19 """ 20 Return actions that aren't finished 21 """ 22 23 query = (models.Action.query 24 .filter(models.Action.result == 25 helpers.BackendResultEnum("waiting")) 26 .filter(models.Action.action_type != 27 helpers.ActionTypeEnum("legal-flag")) 28 .order_by(models.Action.created_on.asc())) 29 30 return query
31 32 @classmethod
33 - def get_by_ids(cls, ids):
34 """ 35 Return actions matching passed `ids` 36 """ 37 38 return models.Action.query.filter(models.Action.id.in_(ids))
39 40 @classmethod
41 - def update_state_from_dict(cls, action, upd_dict):
42 """ 43 Update `action` object with `upd_dict` data 44 45 Updates result, message and ended_on parameters. 46 """ 47 48 for attr in ["result", "message", "ended_on"]: 49 value = upd_dict.get(attr, None) 50 if value: 51 setattr(action, attr, value) 52 53 db.session.add(action)
54