Example #1
0
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))
Example #2
0
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))