Esempio n. 1
0
def createRequest(request_type, request_obj=None, timestamp=None, as_mongo_obj=False, **kwargs):
    """
    request_type:  required, name (string) of request type, dbref to it's db entry, or a Type object
    request_obj:  optional, stored as is, could be a dict of collection parameters, or whatever
    timestamp:  datetime.datetime.now() if not provided
    priority:  optional, integer priority level

    anything else (priority, sample_id) can either be embedded in the
    request_object or passed in as keyword args to get saved at the
    top level.
    """
    if isinstance(request_type, unicode) or isinstance(request_type, str):
        request_type = type_from_name(request_type, as_mongo_obj=True)
        print('rt:[{0}]'.format(request_type))
#    elif not isinstance(request_type, Request):
#        raise ValueError('wrong type {0}'.format(request_type.__class__))

    kwargs['request_type'] = request_type
    kwargs['timestamp'] = timestamp
    kwargs['request_obj'] = request_obj

    r = Request(**kwargs)
    r.save()

    if as_mongo_obj:
        return r
    return r.to_mongo()