def api(request): cmd_op = request.GET['cmd'] ctx = UserContext(request) cmd = Command(ctx) try: if cmd_op == 'clear-cache': cache.clear() return cmd.success(message="Cache cleared") elif cmd_op == 'list-data-files': user_dir = ctx.get_user_root() + ctx.params['path'] files = [ f for f in listdir(user_dir) if isfile(join(user_dir,f)) ] dirs = [ f for f in listdir(user_dir) if isdir(join(user_dir,f)) ] return cmd.success(files=files,directories=dirs) elif cmd_op == 'upload-file': if request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): if request.FILES['file'].size > 500000: #max upload file return cmd.error("la limite de taille est de 500ko") name = request.FILES['file'].name user_dir = ctx.get_user_root() + get_path(request) if 'path' in ctx.params else '' path = user_dir + os.sep + name destination = open(path, 'wb+') for chunk in request.FILES['file'].chunks(): destination.write(chunk) destination.close() return cmd.success(files=[{'name': name, 'path':path}]) else: return cmd.error("%s n'est pas un fichier .CSV" % request.FILES['file'].name ) else: return cmd.error('GET operation not supported') else: return cmd.error('Undefined api command %s' % cmd_op) except Exception, e: print traceback.format_exc() return cmd.error(str(e))
def api(request): ftname = request.GET['ftable'] cmd = request.GET['cmd'] ctx = UserContext(request) try: if ctx.feature_table_exist(ftname): ftable = ctx.get_feature_table(ftname) ftcmd = FeatureTableCommand(ctx,ftname,ftable) if cmd == 'save': return ftcmd.save() elif cmd == 'set-class': return ftcmd.set_class() elif cmd == 'get-distribution-function': return ftcmd.get_distribution_function() elif cmd == 'add-feature': return ftcmd.add_feature() elif cmd == 'get-feature': return ftcmd.get_feature() elif cmd == 'edit-feature': return ftcmd.edit_feature() elif cmd == 'remove-feature': return ftcmd.remove_feature() elif cmd == 'nl-query': return ftcmd.nl_query() elif cmd == 'add-filter': return ftcmd.add_filter() elif cmd == 'select-filter': return ftcmd.select_filter() elif cmd == 'clear-filter': return ftcmd.clear_filter() elif cmd == 'remove-filter': return ftcmd.remove_filter() elif cmd == 'get-featureset': return ftcmd.get_featureset() elif cmd == 'index-query': return ftcmd.index_query() else: return error('No feature feature table %s' % ftname) except Exception, e: print traceback.format_exc() return error(str(e))