Example #1
0
def bypath():
    path = load(request.data)['path'][1:].split('/')
    root = api.get_entity('Database')(path[0])
    last = root
    for level in path[1:]:
        last = last.View(level)
    return dump(last)
Example #2
0
def bypath():
    path = load(request.data)['path'][1:].split('/')
    root = api.get_entity('Database')(path[0])
    last = root
    for level in path[1:]:
        last = last.View(level)
    return dump(last)
Example #3
0
def get_select_processor(objid):
    """Handle get select."""
    try:
        argspec = api.get_args('Select', 'select')
        kwargs = {'objid': objid, 'limit': 50}
        return dump(api.get_entity('Select')().select(**kwargs))
    except errors.RelationDoesNotExist as e:
        print objid
        abort(410)
Example #4
0
def respond(path):
    """Generic path responder, on its way out."""
    # Standardize to no trailing slash (for parsing purposes)
    try:
        if path[-1] == '/':
            path = path[:-1]
    except IndexError:
        pass
    args = path.split('/')
    if args[0] == 'get_byrowid':
        return dump(api.get_entity('Select')().get_byrowid(*args[1:]))
    elif args[0] == 'get_array':
        return dump(api.get_entity('Select')().get_array(**load(request.data)))
    try:
        return process_entity_identified(*args)
    except errors.RelationDoesNotExist:
        abort(410)
    except TypeError:
        abort(404)
    abort(404)
Example #5
0
def respond(path):
    """Generic path responder, on its way out."""
    # Standardize to no trailing slash (for parsing purposes)
    try:
        if path[-1] == '/':
            path = path[:-1]
    except IndexError:
        pass
    args = path.split('/')
    if args[0] == 'get_byrowid':
        return dump(api.get_entity('Select')().get_byrowid(*args[1:]))
    elif args[0] == 'get_array':
        return dump(api.get_entity('Select')().get_array(**load(request.data)))
    try:
        return process_entity_identified(*args)
    except errors.RelationDoesNotExist:
        abort(410)
    except TypeError:
        abort(404)
    abort(404)
Example #6
0
def get_select_processor(objid):
    """Handle get select."""
    try:        
        argspec = api.get_args('Select','select')
        kwargs = {
            'objid':objid,
            'limit':50
        }
        return dump(api.get_entity('Select')().select(**kwargs))
    except errors.RelationDoesNotExist as e:
        print objid
        abort(410)
Example #7
0
def post_select_processor(objid):
    """Handle post select."""
    lastaccess = open('lastaccess','w')
    now = datetime.datetime.now()
    now = dump((now.year,now.month,now.day,now.hour,now.minute))
    lastaccess.write(now)
    lastaccess.close()
    try:
        kwargs = load(request.data)
        if 'limit' not in kwargs:
            kwargs['limit'] = 50
        return dump(api.get_entity('Select')().select(**kwargs))
    except errors.RelationDoesNotExist as e:
        print objid
        abort(410)
Example #8
0
def post_select_processor(objid):
    """Handle post select."""
    lastaccess = open('lastaccess', 'w')
    now = datetime.datetime.now()
    now = dump((now.year, now.month, now.day, now.hour, now.minute))
    lastaccess.write(now)
    lastaccess.close()
    try:
        kwargs = load(request.data)
        if 'limit' not in kwargs:
            kwargs['limit'] = 50
        return dump(api.get_entity('Select')().select(**kwargs))
    except errors.RelationDoesNotExist as e:
        print objid
        abort(410)
Example #9
0
 def listing(self,child_type=None):
     
     if child_type is None:
         items = json.loads(sesh.get(self._get_req_url()).text)
         entities = [init_entity(x) for x in items]
         for e in entities:
             e.sesh = sesh
         return entities
     else:
         url = self._get_req_url(self.objid) + ("%ss/" % child_type.lower())
         r = sesh.get(url).text
         try:
             return [api.get_entity(x['entitytype'])(x) for x in json.loads(r)]
         except ValueError as e:
             print r
             raise e
Example #10
0
    def listing(self, child_type=None):

        if child_type is None:
            items = json.loads(sesh.get(self._get_req_url()).text)
            entities = [init_entity(x) for x in items]
            for e in entities:
                e.sesh = sesh
            return entities
        else:
            url = self._get_req_url(self.objid) + ("%ss/" % child_type.lower())
            r = sesh.get(url).text
            try:
                return [
                    api.get_entity(x['entitytype'])(x) for x in json.loads(r)
                ]
            except ValueError as e:
                print r
                raise e
Example #11
0
def view_tile_handler_mag(objid,x,y,z,magnitude):
    """Handle get tile with specified magnitude column."""
    try:
        return dump(api.get_entity('View')(objid).tile(x,y,z,magnitude))
    except errors.RelationDoesNotExist:
        abort(404)
Example #12
0
def view_rowids_handler(objid,x,y,z):
    """Handle get tile rowids."""
    return dump(api.get_entity('View')(objid).tile_rowids(x,y,z))
Example #13
0
def view_tile_handler(objid,x,y,z):
    """Handle get tile rowids."""
    try:
        return dump(api.get_entity('View')(objid).tile(x,y,z))
    except errors.RelationDoesNotExist:
        abort(404)
Example #14
0
def table_rowids_handler(objid,x,y,z):
    """Handle get tile."""
    return dump(api.get_entity('Table')(objid).tile_rowids(x,y,z))
Example #15
0
def table_tile_handler(objid,x,y,z):
    """Handle get tile."""
    try:
        return dump(api.get_entity('Table')(objid).tile(x,y,z))
    except errors.RelationDoesNotExist:
        abort(404)
Example #16
0
def process_entity_identified(entityname,objid,method=None,child=None,last=None):
    """Remnants."""  
    if request.method == 'GET' and (method is not None and child is not None and last is None):
        ent = api.get_entity(entityname)(objid)
        meth = getattr(ent,method)
        return dump(
            meth(child)
        )
        
    elif request.method == 'GET' and all(x is not None for x in (method,child,last)):
        outer = api.get_entity(entityname)(objid)
        outer = getattr(outer,method)
        print outer
        return dump(
            getattr(outer,last)()
        )
            
    elif method in ('modify','rename'):
        if request.method == 'OPTIONS':
            return ''
        elif request.method not in ('PUT','POST'):
            abort(405)
        entity = api.get_entity(entityname)(objid)
        try:
            if method == 'modify':
                #try:
                return dump(entity.modify(**load(request.data)))
                #except errors.DataError:
                #    abort(409)
            if method == 'rename':
                return dump(entity.rename(**load(request.data)))
        except errors.NotAuthorized:
            abort(401)
        
    elif request.method == 'POST' and method == 'add_columns':
        entity = api.get_entity(entityname)(objid)
        return dump(entity.add_columns(**load(request.data)))
        
    elif request.method == 'POST' and method == 'add_index':
        entity = api.get_entity(entityname)(objid)
        return dump(entity.add_index(**load(request.data)))
    
    elif method is not None and method.startswith('create_'):
        if request.method != 'POST':
            abort(405)
        try:
            ent = api.get_entity(entityname)(objid)
        except KeyError:
            abort(404)
        return dump(getattr(ent,method)(**load(request.data)))
    
    else:
        if request.method != 'GET':
            abort(405)
        try:
            ent = api.get_entity(entityname)(objid)
        except KeyError:
            abort(404)
        try:
            return dump(getattr(ent,method)())
        except AttributeError:
            abort(404)
        
    abort(404)
Example #17
0
def view_tile_handler_mag(objid, x, y, z, magnitude):
    """Handle get tile with specified magnitude column."""
    try:
        return dump(api.get_entity('View')(objid).tile(x, y, z, magnitude))
    except errors.RelationDoesNotExist:
        abort(404)
Example #18
0
def tree():
    return dump(api.get_entity('Database')().tree())
Example #19
0
def view_rowids_handler(objid, x, y, z):
    """Handle get tile rowids."""
    return dump(api.get_entity('View')(objid).tile_rowids(x, y, z))
Example #20
0
def appview():
    """The launcher app spec."""
    appdb = api.get_entity('Database')('earth-mgmt')
    assets = appdb.Table('assets')
    fname, val = assets.columns()
    return dump(assets.select())
Example #21
0
def view_tile_handler(objid, x, y, z):
    """Handle get tile rowids."""
    try:
        return dump(api.get_entity('View')(objid).tile(x, y, z))
    except errors.RelationDoesNotExist:
        abort(404)
Example #22
0
def appview():
    """The launcher app spec."""
    appdb = api.get_entity('Database')('earth-mgmt')
    assets = appdb.Table('assets')
    fname, val = assets.columns()
    return dump(assets.select())
Example #23
0
def appjson(appname):
    """Return the json spec for the app."""
    appdb = api.get_entity('Database')(appname)
    assets = appdb.Table('assets')
    fname, val = assets.columns()
    return dump(assets.select())
Example #24
0
def process_entity_identified(entityname,
                              objid,
                              method=None,
                              child=None,
                              last=None):
    """Remnants."""
    if request.method == 'GET' and (method is not None and child is not None
                                    and last is None):
        ent = api.get_entity(entityname)(objid)
        meth = getattr(ent, method)
        return dump(meth(child))

    elif request.method == 'GET' and all(x is not None
                                         for x in (method, child, last)):
        outer = api.get_entity(entityname)(objid)
        outer = getattr(outer, method)
        print outer
        return dump(getattr(outer, last)())

    elif method in ('modify', 'rename'):
        if request.method == 'OPTIONS':
            return ''
        elif request.method not in ('PUT', 'POST'):
            abort(405)
        entity = api.get_entity(entityname)(objid)
        try:
            if method == 'modify':
                #try:
                return dump(entity.modify(**load(request.data)))
                #except errors.DataError:
                #    abort(409)
            if method == 'rename':
                return dump(entity.rename(**load(request.data)))
        except errors.NotAuthorized:
            abort(401)

    elif request.method == 'POST' and method == 'add_columns':
        entity = api.get_entity(entityname)(objid)
        return dump(entity.add_columns(**load(request.data)))

    elif request.method == 'POST' and method == 'add_index':
        entity = api.get_entity(entityname)(objid)
        return dump(entity.add_index(**load(request.data)))

    elif method is not None and method.startswith('create_'):
        if request.method != 'POST':
            abort(405)
        try:
            ent = api.get_entity(entityname)(objid)
        except KeyError:
            abort(404)
        return dump(getattr(ent, method)(**load(request.data)))

    else:
        if request.method != 'GET':
            abort(405)
        try:
            ent = api.get_entity(entityname)(objid)
        except KeyError:
            abort(404)
        try:
            return dump(getattr(ent, method)())
        except AttributeError:
            abort(404)

    abort(404)
Example #25
0
def table_rowids_handler(objid, x, y, z):
    """Handle get tile."""
    return dump(api.get_entity('Table')(objid).tile_rowids(x, y, z))
Example #26
0
def getbyrowid(objid,rowid):
    """Handle get select."""
    return dump(api.get_entity('Select')().get_byrowid(objid,rowid,True))
Example #27
0
def getbyrowid(objid, rowid):
    """Handle get select."""
    return dump(api.get_entity('Select')().get_byrowid(objid, rowid, True))
Example #28
0
def table_tile_handler(objid, x, y, z):
    """Handle get tile."""
    try:
        return dump(api.get_entity('Table')(objid).tile(x, y, z))
    except errors.RelationDoesNotExist:
        abort(404)
Example #29
0
def appjson(appname):
    """Return the json spec for the app."""
    appdb = api.get_entity('Database')(appname)
    assets = appdb.Table('assets')
    fname, val = assets.columns()
    return dump(assets.select())
Example #30
0
def view_features_handler(objid):
    """Handle get features."""
    rdat = load(request.data)
    print[str(x) for x in rdat['rowids']]
    return dump(api.get_entity('View')(objid).features(rdat['rowids']))
Example #31
0
@app.route('/tables/<objid>/tile/<x>/<y>/<z>/<magnitude>/tile.geo.json',methods=['GET'])
@app.route('/Table/<objid>/tile/<x>/<y>/<z>/<magnitude>/tile.geo.json',methods=['GET'])
def table_tile_handler_mag(objid,x,y,z,magnitude):
    """Handle get tile with specified magnitude column."""
    try:
        return dump(api.get_entity('Table')(objid).tile(x,y,z,magnitude))
    except errors.RelationDoesNotExist:
        abort(404)
    
@app.route('/tables/<objid>/features/',methods=['POST'])
@app.route('/Table/<objid>/features/',methods=['POST'])
def table_features_handler(objid):
    """Handle get features."""
    rdat = load(request.data)
    print [str(x) for x in rdat['rowids']]
    return dump(api.get_entity('Table')(objid).features(rdat['rowids']))

@app.route('/views/<objid>/tile_rowids/<x>/<y>/<z>/',methods=['GET'])
@app.route('/View/<objid>/tile_rowids/<x>/<y>/<z>/',methods=['GET'])
def view_rowids_handler(objid,x,y,z):
    """Handle get tile rowids."""
    return dump(api.get_entity('View')(objid).tile_rowids(x,y,z))
    
@app.route('/views/<objid>/tile/<x>/<y>/<z>/',methods=['GET'])
@app.route('/View/<objid>/tile/<x>/<y>/<z>/',methods=['GET'])
@app.route('/views/<objid>/tile/<x>/<y>/<z>/tile.geo.json',methods=['GET'])
@app.route('/View/<objid>/tile/<x>/<y>/<z>/tile.geo.json',methods=['GET'])
def view_tile_handler(objid,x,y,z):
    """Handle get tile rowids."""
    try:
        return dump(api.get_entity('View')(objid).tile(x,y,z))
Example #32
0
def tree():
    return dump(api.get_entity('Database')().tree())