def process(req):
        ps = merge_request_params(req)
        validate_params(SCHEMA, ps)
        ctx = context(req)
        if u'id' not in ps and u'file' in ps:
            f = ps[u'file']
            tmpfile = save_upload_file(f, u'tmp_' + uuid_hex() + u'.tmp')
            ps[u'file'] = DummyFile(tmpfile, f.filename)
            try:
                with Resource(tmpfile) as res:
                    ps[u'id'] = res.manifest.pid

                return publisher_services.upsert_version(ctx, **ps)
            finally:
                try:
                    os.remove(tmpfile)
                except:
                    pass
        else:
            return publisher_services.upsert_version(ctx, **ps)
    def process(req):
        ps = merge_request_params(req)
        validate_params(SCHEMA, ps)
        ctx = context(req)
        if u'id' not in ps and u'file' in ps:
            f = ps[u'file']
            tmpfile = save_upload_file(f, u'tmp_' + uuid_hex() + u'.tmp')
            ps[u'file'] = DummyFile(tmpfile, f.filename)
            try:
                with Resource(tmpfile) as res:
                    ps[u'id'] = res.manifest.pid

                return publisher_services.upsert_version(ctx, **ps)
            finally:
                try:
                    os.remove(tmpfile)
                except:
                    pass
        else:
            return publisher_services.upsert_version(ctx, **ps)
 def process(req):
     ps = merge_request_params(req)
     validate_params(SCHEMA, ps)
     ctx = context(req)
     f = ps[u'file']
     tmpfile = save_upload_file(f, u'tmp_' + uuid_hex() + u'.tmp')
     try:
         r = None
         with Resource(tmpfile) as res:
             ps1 = read_params_from_res(ps, res, tmpfile)
             r = publisher_services.upsert_version(ctx, **ps1)
         return r
     finally:
         try:
             os.remove(tmpfile)
         except:
             pass
 def process(req):
     ps = merge_request_params(req)
     validate_params(SCHEMA, ps)
     ctx = context(req)
     f = ps[u'file']
     tmpfile = save_upload_file(f, u'tmp_' + uuid_hex() + u'.tmp')
     try:
         r = None
         with Resource(tmpfile) as res:
             ps1 = read_params_from_res(ps, res, tmpfile)
             r = publisher_services.upsert_version(ctx, **ps1)
         return r
     finally:
         try:
             os.remove(tmpfile)
         except:
             pass