iro/controller/viewinterface.py
changeset 311 81916344c63b
parent 309 7fa1d4713a4f
equal deleted inserted replaced
310:352850d4fb4b 311:81916344c63b
    19 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    19 # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
    20 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    20 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    21 
    21 
    22 # -*- coding: utf-8 -*-
    22 # -*- coding: utf-8 -*-
    23 from ..model.decorators import vUser, vRoute, dbdefer, vTyp
    23 from ..model.decorators import vUser, vRoute, dbdefer, vTyp
       
    24 from ..model.job import exJobs
    24 from ..model.message import SMS, Fax, Mail
    25 from ..model.message import SMS, Fax, Mail
    25 
    26 
    26 from ..validate import validate, vBool, vTel, vEmail, vInteger
    27 from ..validate import validate, vBool, vTel, vEmail, vInteger
    27 
    28 
    28 from .task import createJob
    29 from .task import createJob
    43 
    44 
    44         :return dict: 
    45         :return dict: 
    45            - `key` -- is the job id
    46            - `key` -- is the job id
    46            - [`key`][**'status'**] -- status of the job
    47            - [`key`][**'status'**] -- status of the job
    47 
    48 
    48         .. warning:: detailed is not used yet.
       
    49         
       
    50         >>> status(APIKEY)
    49         >>> status(APIKEY)
    51         {"1":  {"status":"sended"},
    50         {"1":  {"status":"sended"},
    52          "2":  {"status":"error"},
    51          "2":  {"status":"error"},
    53          "10": {"status":"sending"}}
    52          "10": {"status":"sending"}}
    54 
    53 
    55         >>> status(APIKEY,10)
    54         >>> status(APIKEY,10)
    56         {"10": {"status":"sending"}}
    55         {"10": {"status":"sending"}}
       
    56 
       
    57         >>> status(APIKEY,10,True)
       
    58         {"10": {"status":"sending",
       
    59             "tasks": {"recipient1": "sended", "recipient2": "waiting" }}}
    57         '''
    60         '''
    58         user = session.merge(user)
    61         user = session.merge(user)
    59         ret={}
    62         ret={}
    60         if not id:
    63         if not id:
    61             for job in user.jobs:
    64             for job in user.jobs:
    62                 ret[str(job.id)]={"status":job.status}
    65                 ret[str(job.id)]={"status":job.status}
    63         else:
    66         else:
    64             ret[str(id)]={"status":user.job(id).status}
    67             ret[str(id)]={"status":user.job(id).status}
    65         
    68 
       
    69             if detailed:
       
    70                 def _status(task):
       
    71                     if task.error:
       
    72                         return "Error: " + task.status
       
    73                     elif task.status is None:
       
    74                         return "waiting"
       
    75                     else:
       
    76                         return "sended"
       
    77 
       
    78                 ret[str(id)]["tasks"] = {task.recipient: _status(task) for task in exJobs[id].tasks.values()}
       
    79 
    66         return ret
    80         return ret
    67    
    81    
    68     @validate(kwd="recipients",func=vTel)
    82     @validate(kwd="recipients",func=vTel)
    69     @vUser
    83     @vUser
    70     @validate(kwd="route", func=vRoute, typ="sms")
    84     @validate(kwd="route", func=vRoute, typ="sms")