class VoiceNoteModel(object):
    COLLECTION = 'voice_notes'

    def __init__(self):
        app.config["MONGO_URI"] = Config.get('MONGO_DATABASE_CONNECTION')
        self.collection = PyMongo(app).db[VoiceNoteModel.COLLECTION]

    def insert(self, data):
        data['created_at'] = datetime.datetime.utcnow()
        data['updated_at'] = datetime.datetime.utcnow()
        self.collection.insert_one(data)

    def get_by_pilot_id(self, pilot_id):
        result = self.collection.find({"pilot_id": pilot_id})
        voice_note_keys = []
        for document in result:
            voice_note_keys.append(document['voice_note_key'])

        return voice_note_keys

    def pilot_has_voice_note(self, pilot_id, voice_note_key):
        result = self.collection.find({"voice_note_key": voice_note_key, "pilot_id": pilot_id})

        return True if result.count() == 1 else False
Пример #2
0
if os.path.exists("env.py"):
    import env

# create instance of flask and assign it to "app"
app = Flask(__name__)
app.config["MONGO_URI"] = os.getenv(
    "connection_string"
)  # Variabile situata in env.py/inserita nei setting di heroku

coll = PyMongo(
    app).db.myFirstDB  # Variabile contenente l'unica collezione del database

# Order the collection in a list
coll_list = []
for dict in coll.find():
    for key, value in dict.items():
        if key != "_id":
            coll_list.append(key + " : " + str(value))


# landing page
@app.route('/')
@app.route('/first_function')
def first_function():
    return render_template("index.html", output=coll_list)


if __name__ == '__main__':
    app.run(host=os.getenv("IP", "0.0.0.0"),
            port=int(os.getenv("PORT", "5000")),
Пример #3
0
class AdminData:
    def __init__(self, app):
        self.db = PyMongo(app, uri=MONGO_URI + USER_DB).db.db
        self.face_db = PyMongo(app, uri=MONGO_URI + FACE_DB).db

        if self.db.count_documents({}) == 0:
            self.db.create_index([('collection', TEXT), ('key', TEXT)], unique=True)

        self.log = logger()

    def get_data(self, data: dict):
        return self.db.find_one(data)

    def get(self):
        results = self.db.find().sort([("collection", ASCENDING)])
        return list(results)

    def search(self, keyword):
        results = self.db.find(
            {"$text": {"$search": keyword}},
            {"score": {"$meta": "textScore"}}
        ).sort([("score", {"$meta": "textScore"})])
        return list(results)

    def create(self, collection: str):
        try:
            key = secrets.token_urlsafe()
            while self.db.find_one({'key': key}):
                key = secrets.token_urlsafe()

            self.db.insert_one({
                'collection': collection,
                'key': key
            })
            return key
        except Exception as ex:
            self.log.exception(ex)
            return ''

    def update(self, collection: str):
        try:
            key = secrets.token_urlsafe()
            while self.db.find_one({'key': key}):
                key = secrets.token_urlsafe()

            self.db.update_one(
                {
                    'collection': collection
                },
                {
                    "$set": {
                        'key': key
                    }
                }
            )
            return key
        except Exception as ex:
            self.log.exception(ex)
            return ''

    def remove(self, collection: str):
        data = {'collection': collection}
        for model in MODELS:
            self.face_db.drop_collection(model + collection)

        self.db.delete_one(data)

        return not self.db.find_one(data)
Пример #4
0
class KeyData:
    def __init__(self, app):
        uri = MONGO_URI + KEY_DB
        self.db = PyMongo(app, uri=uri).db.db

        if self.db.count_documents({}) == 0:
            self.db.create_index([('name', TEXT), ('moodle', TEXT),
                                  ('key', TEXT)],
                                 unique=True)

        self.log = logger()

    def get_data(self, moodle: str):
        if moodle[-1] == '/':
            moodle = moodle[:-1]
        return self.db.find_one({'moodle': moodle})

    def get_by_name(self, name: str):
        return self.db.find_one({'name': name})

    def get_by_key(self, key: str):
        return self.db.find_one({'key': key})

    def get(self):
        results = self.db.find().sort([("collection", ASCENDING)])
        return list(results)

    def search(self, keyword):
        results = self.db.find({
            "$text": {
                "$search": keyword
            }
        }, {
            "score": {
                "$meta": "textScore"
            }
        }).sort([("score", {
            "$meta": "textScore"
        })])
        return list(results)

    def create(self, name: str, moodle: str, wstoken: str, key: str):
        try:
            self.db.insert_one({
                'name': name,
                'moodle': moodle,
                'wstoken': wstoken,
                'key': key
            })
            return True
        except Exception as ex:
            self.log.exception(ex)
            return False

    def update(self, name: str, moodle: str, wstoken: str, key: str):
        try:
            self.db.update_one(
                {'name': name},
                {"$set": {
                    'moodle': moodle,
                    'wstoken': wstoken,
                    'key': key
                }})
            return True
        except Exception as ex:
            self.log.exception(ex)
            return True

    def remove(self, name: str):
        data = {'name': name}
        self.db.delete_one(data)

        return not self.db.find_one(data)