예제 #1
0
def newTak():
    name = getValue(request, "name", None)
    uid = getValue(request, "userid", None)
    lat = getValue(request, "lat", None)
    lng = getValue(request, "lng", None)
    if not (name and lat and lng and uid):
        return json_response(code=400)
    mapid = getValue(request, "mapid", None)
    map = None
    if uid is not None:
        user = Account.get_by_id(int(uid))
        if user is None:
            return json_response(code=400)
    if mapid is not None:
        map = Map.get_by_id(int(mapid))
    if map is None:
        map = Map(creator=user.name,
                  creatorId=int(uid),
                  name='Untitled',
                  adminIds=[int(uid)])
        key = map.put()
        mapid = key.id()
        account = Account.get_by_id(int(uid))
        account.adminMaps.append(int(mapid))
        account.put()
    tak = Tak(lng=lng,
              lat=lat,
              creator=user.name,
              name=name,
              mapId=int(mapid),
              creatorId=int(uid))
    key = tak.put()
    map.takIds.append(key.integer_id())
    map.put()
    return json_success(tak.Get())
예제 #2
0
def create_tak():
    if request.method == 'POST':
        # login required
        mapId = getValue(request, "mapId", "")
        logging.info("mapId=" + mapId)
        map = Map.get_by_id(int(mapId))
        if map is None:
            return jsonify(message="Map does not exist", response=400)
        logging.info("mapid %s" % mapId)
        name = getValue(request, "title", "")
        lat = getValue(request, "lat", "")
        lng = getValue(request, "lng", "")
        #user = getValue(request, "user", "")
        #change form to not supply user
        user = session['username']
        uid = session['userId']

        if not (user and lat and lng):
            return jsonify(message="Bad Request", response=400)
            # check if args blank

        logging.info("Add lat %s, lng %s" % (lat, lng))
        tak = Tak(lng=lng,
                  lat=lat,
                  creator=user,
                  name=name,
                  mapId=int(mapId),
                  creatorId=int(uid))
        key = tak.put()
        map.takIds.append(int(key.id()))
        map.put()
        return json_success(tak.to_dict())

    if request.method == 'GET':
        # return list of maps too for selecting
        listOfMaps = []
        mapIds = getMaps(session['userId'])
        for mapid in mapIds:
            ownMap = Map.get_by_id(mapid)
            listOfMaps.append(ownMap)

        return render_template('create_tak.html', uid=session['userId'])
예제 #3
0
def copytak(takid=-1):
    if takid <= 0:
        return json_response(code=400)
    tak = Tak.get_by_id(takid)
    if tak is None:
        return json_response(code=400)
    mapid = getValue(request, "mapid", "")
    if mapid == '':
        return json_response(code=400)
    newmap = Map.get_by_id(int(mapid))
    if newmap is None:
        return json_response(code=400)
    newtak = Tak(lng=tak.lng,
                 lat=tak.lat,
                 creator=tak.creator,
                 name=tak.name,
                 mapId=newmap.key.integer_id(),
                 creatorId=tak.creatorId)
    newtak.metadata = tak.metadata
    key = newtak.put()
    newmap.takIds.append(key.integer_id())
    newmap.put()
    return json_success(newtak.Get())
예제 #4
0
def api_tak():
    if request.method == 'POST':
        userName = request.args.get("name", "")
        mapId = request.args.get("mapId", "")
        mapId = str(mapId.encode('utf-8').decode('ascii', 'ignore'))
        userId = request.args.get("id", "")
        userId = int(str(userId.encode('utf-8').decode('ascii', 'ignore')))
        name = request.args.get("title", "")
        lat = request.args.get("lat", "")
        lat = str(lat.encode('utf-8').decode('ascii', 'ignore'))
        lng = request.args.get("lng", "")
        lng = str(lng.encode('utf-8').decode('ascii', 'ignore'))
        tak = Tak(name=name,
                  lat=lat,
                  lng=lng,
                  creator=userName,
                  creatorId=int(userId),
                  mapId=int(mapId))
        key = tak.put()
        logging.info("tak added")
        return json_success({"takId": key.integer_id()})
    if request.method == 'GET':
        return '200'