Пример #1
0
def Login(content):
    try:
        username = content['username']
        passwd = content['passwd']
        query = Clients.query.filter_by(username=username)
        if query.one_or_none() is not None:
            q = query.one_or_none()
            if check_encrypted_password(passwd, q.passwd):
                orders = ClientOrders.query.filter_by(
                    request_by=query.one().id).all()
                q.__dict__.pop("passwd")
                q.__dict__.pop("_sa_instance_state")
                if orders is not None:
                    tmp = []
                    for num in range(len(orders)):
                        tmpDict = orders[num].__dict__
                        tmpDict.pop("_sa_instance_state")
                        tmp.append(tmpDict)
                    resp = q.__dict__
                    resp["orders"] = tmp
                else:
                    resp = {**q.__dict__, "orders": "null"}

                return resp, 200
            return None, 401
        else:
            return None, 401
    except InvalidRequestError:
        log().error("InvalidRequestError")
        return None, 400
    except ValueError as e:
        log().error(e)
        return None, 400
Пример #2
0
def patchMissionOrder():
    r = request.get_json()
    log().debug(r)
    resp, code = missionOrders.Patch(r)
    if resp is not None:
        return warpResponse(resp, code)
    else:
        return warpResponse(None, code)
Пример #3
0
def FindAll():
    try:
        query = MissionOrders.query.all()
        dataDict = []
        for data in query:
            data.__dict__.pop("_sa_instance_state")
            dataDict.append(data.__dict__)
        return dataDict, 200
    except Exception as e:
        log().error("missionOrder findAll error")
        return None, 404
Пример #4
0
def FindOne(cond):
    try:
        query = MissionOrders.query.filter_by(id=cond).one_or_none()
        if query is not None:
            query.__dict__.pop("_sa_instance_state")
            return query.__dict__, 200
        else:
            return None, 404
    except InvalidRequestError:
        log().error("InvalidRequestError")
        return None, 400
Пример #5
0
def checkDictKeyMatchArray(arrays, dicts):
    querydict = {}
    for key in arrays:
        if key in dicts:
            querydict[key] = dicts[key]
            del dicts[key]
    if dicts:
        log().withPrefix("[dict]").debug(dicts)
        log().withPrefix('[array]').debug(arrays)
        return None, False
    return querydict, True
Пример #6
0
def FindAll():
    try:
        query = Rockets.query.all()
        dataDict = []
        for data in query:
            data.__dict__.pop("_sa_instance_state")
            dataDict.append(data.__dict__)
        return dataDict, 200
    except Exception as e:
        log().error(e.message)
        return None, 404
Пример #7
0
def FindAll():
    try:
        query = ClientOrders.query.all()
        dataDict = []
        for data in query:
            data.__dict__.pop("_sa_instance_state")
            dataDict.append(data.__dict__)
        return dataDict, 200
    except :
        log().error("clientOrder controller findall")
        return None, 404
Пример #8
0
def FindAll():
    try:
        query = Clients.query.all()
        dataDict = []
        for data in query:
            data.__dict__.pop("_sa_instance_state")
            data.__dict__.pop("passwd")
            dataDict.append(data.__dict__)
        return dataDict, 200
    except Exception as e:
        log().error("error in findall")
        return None, 404
Пример #9
0
def Delete(username):
    try:
        toDel = Clients.query.filter_by(username=username).first()
        if toDel is not None:
            db_session.delete(toDel)
            db_session.commit()
            return 200
        else:
            return 400
    except InvalidRequestError:
        log().error("Unable to delete data")
        return 400
Пример #10
0
def Delete(id):
    try:
        toDel = Rockets.query.filter_by(id=id).first()
        if toDel is not None:
            db_session.delete(toDel)
            db_session.commit()
            return 200
        else:
            return 400
    except InvalidRequestError:
        log().error("Unable to delete data")
        return 400
Пример #11
0
def FindOne(cond):
    try:
        query = Timelines.query.filter_by(**cond)
        if query.one_or_none() is not None:
            q = query.one_or_none()
            q.__dict__.pop("_sa_instance_state")
            return q.__dict__, 200
        else:
            return None, 404
    except InvalidRequestError:
        log().error("InvalidRequestError")
        return None, 400
Пример #12
0
def Create(cond):
    createClients = Timelines(**cond, create_time=datetime.now())
    
    try:
        db_session.add(createClients)
        db_session.commit()
        return 200
    except InvalidRequestError:
        log().error("Unable to create data")
        return 400
    except IntegrityError:
        log().error("Foreign key not found")
        return 400
Пример #13
0
def FindOne(ids):
    try:
        query = Clients.query.filter_by(id=ids).one_or_none()
        if query is not None:
            q = query.__dict__
            q.pop("_sa_instance_state")
            q.pop("passwd")
            return q, 200
        else:
            return None, 404
    except InvalidRequestError:
        log().error("InvalidRequestError")
        return None, 400
Пример #14
0
def Patch(querys, content):
    try:
        query = Timelines.query.filter_by(id=querys).first()
        if query is not None:
            for key in content:
                setattr(query, key, content[key])
            db_session.commit()
            return 200
        else:
            return 404
    except InvalidRequestError:
        log().error("Unable to patch data")
        return 400
Пример #15
0
def FindAllWithCond(cond):
    try:
        query = Timelines.query.filter(Timelines.launch_day >= cond['start'])
        if 'end' in cond:
            query = query.filter(Timelines.launch_day <= cond['end'])
        query = query.all()
        dataDict = []
        for data in query:
            data.__dict__.pop("_sa_instance_state")
            dataDict.append(data.__dict__)
        return dataDict, 200
    except Exception as e:
        log().error(e.message)
        return None, 404
Пример #16
0
def Patch(content):
    log().debug(content)
    if not content['id']:
        return None, 400
    query = MissionOrders.query.filter_by(id=content.pop("id")).one_or_none()
    if query is not None:
        querydict = {}
        querydict, isMatch = checkDictKeyMatchArray(modelKey, content)
        if not isMatch:
            return None, 400
        for key in querydict:
            setattr(query, key, querydict[key])
        db_session.commit()
        return querydict, 200
    else:
        return None, 404
Пример #17
0
def Patch(content):
    try:
        queryDict, isMatch = checkDictKeyMatchArray(modelKey, content)
        if not isMatch:
            return 400
        query = Clients.query.filter_by(
            username=queryDict['username']).one_or_none()
        if query is not None:
            for key in queryDict:
                setattr(query, key, queryDict[key])
            db_session.commit()
            return 200
        else:
            return 404
    except InvalidRequestError:
        log().error("Unable to patch data")
        return 400
Пример #18
0
def Create(cond):
    querydict = {}
    querydict, isMatch = checkDictKeyMatchArray(modelKey, cond)
    if not isMatch:
        return None, 400

    createRocket = Rockets(**querydict)

    try:
        db_session.add(createRocket)
        db_session.commit()
        return 200
    except InvalidRequestError:
        log().error("Unable to create data")
        return 400
    except IntegrityError:
        log().error("Foreign key not found")
        return 400
Пример #19
0
def Delete(id):
    try:
        toDel = ClientOrders.query.filter_by(id=id).first()
        if toDel is not None:
            delRelate = MissionClientOrderRelate.query.filter_by(clientOrder_id=id)
            if delRelate.one_or_none() is not None:
                for data in delRelate.all():
                    db_session.delete(data)
            db_session.commit()
            
            db_session.delete(toDel)
            db_session.commit()
            return 200
        else:
            return 400
    except InvalidRequestError:
        log().error("Unable to delete clientOrder data")
        return 400
Пример #20
0
def Create(cond):
    passwd = encrypt_password(cond['passwd'])
    cond.pop('passwd')
    queryDict, isMatch = checkDictKeyMatchArray(modelKey, cond)
    if not isMatch:
        return None, 400
    createClients = Clients(**queryDict, passwd=passwd)

    try:
        db_session.add(createClients)
        db_session.commit()
        return 200
    except InvalidRequestError:
        log().error("Unable to create data")
        return 400
    except IntegrityError:
        log().error("Foreign key not found")
        return 400
Пример #21
0
def Patch(content):
    try:
        if 'id' not in content:
            return None, 400
        cid = content.pop('id')
        querydict, isMatch = checkDictKeyMatchArray(modelKey, content)
        if not isMatch:
            return None, 400
        query = Missions.query.filter_by(id=cid).one_or_none()
        if query is not None:
            if "pair_order" in querydict:
                pair = list(map(int, querydict["pair_order"].split(',')))
                relate = MissionClientOrderRelate.query.filter_by(
                    mission_id=query.id).all()
                qPair = []
                for data in relate:
                    qPair.append(data.clientOrder_id)

                for toDel in list(set(qPair) - set(pair)):
                    m = MissionClientOrderRelate.query.filter_by(
                        mission_id=query.id, clientOrder_id=toDel).one()
                    db_session.delete(m)

                for toAdd in list(set(pair) - set(qPair)):
                    createRelate = MissionClientOrderRelate(
                        mission_id=query.id, clientOrder_id=toAdd)
                    db_session.add(createRelate)

                try:
                    db_session.commit()
                except:
                    log().error("Unable to patch mission client order relate ")
                    return 400

            for key in querydict:
                setattr(query, key, querydict[key])

            db_session.commit()
            return querydict, 200
        else:
            return None, 404
    except InvalidRequestError:
        log().error("Unable to patch data")
        return None, 400
Пример #22
0
def Patch(content):
    try:
        if not content['id']:
            return None, 400
        query = Rockets.query.filter_by(id=content.pop("id")).one_or_none()
        if query is not None:
            querydict = {}
            querydict, isMatch = checkDictKeyMatchArray(modelKey, content)
            if not isMatch:
                return None, 400
            for key in querydict:
                setattr(query, key, querydict[key])
            db_session.commit()
            return querydict, 200
        else:
            return None, 404
    except InvalidRequestError:
        log().error("Unable to patch data")
        return None, 400
Пример #23
0
def Create(cond):
    log().debug(cond)
    querydict = {}
    querydict, isMatch = checkDictKeyMatchArray(modelKey, cond)
    if not isMatch:
        return None, 400

    if "pair_order" in querydict:
        pair = querydict.pop('pair_order')
        pair = list(map(int, pair.split(',')))
        createMission = Missions(**querydict)
        try:
            db_session.add(createMission)
            db_session.commit()
        except:
            log().error("Unable to add mission")
            return 400
        for values in pair:
            createRelation = MissionClientOrderRelate(
                mission_id=createMission.id, clientOrder_id=values)
            try:
                db_session.add(createRelation)
                db_session.commit()
            except:
                log().error(
                    "Unable to add mission clientOrder relation with id: " +
                    str(values))
                return 400

        return 200

    else:
        createMission = Missions(**querydict)
        try:
            db_session.add(createMission)
            db_session.commit()
            return 200
        except InvalidRequestError:
            log().error("Unable to create mission data")
            return 400
        except IntegrityError:
            log().error("Foreign key not found")
            return 400
Пример #24
0
def FindOne(cond):
    try:
        if "id" not in cond:
            return None, 400
        orderID = cond.pop("id")

        querydict, isMatch = checkDictKeyMatchArray(modelKey, cond)
        if not isMatch:
            return None, 400
        query = Rockets.query.filter_by(**querydict, id=orderID)

        if query.one_or_none() is not None:
            q = query.one_or_none()
            q.__dict__.pop("_sa_instance_state")
            return q.__dict__, 200
        else:
            return None, 404
    except InvalidRequestError:
        log().error("mission InvalidRequestError")
        return None, 400
Пример #25
0
def FindOne(cond):
    try:
        query = Missions.query.filter_by(id=cond).one_or_none()
        if query is not None:
            query.__dict__.pop("_sa_instance_state")
            data = query.__dict__

            queryPairOrder = MissionClientOrderRelate.query.filter_by(
                mission_id=cond).all()
            qdataDict = []
            for qdata in queryPairOrder:
                clientOrder = ClientOrders.query.filter_by(
                    id=qdata.clientOrder_id).one_or_none()
                clientOrder = clientOrder.__dict__
                clientOrder.pop("_sa_instance_state")
                qdataDict.append(clientOrder)

            data['pair_order'] = qdataDict
            return data, 200
        else:
            return None, 404
    except InvalidRequestError:
        log().error("InvalidRequestError")
        return None, 400