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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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