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