def test_create_and_get(self, user: UserData):
        new_user = mongo_user_wrapper.create(user)

        user.uid = new_user.uid
        self.assertEqual(user, new_user)

        retrieved_user = mongo_user_wrapper.get(new_user.uid)
        self.assertEqual(retrieved_user, new_user)
Example #2
0
 def __init__(self):
     self.userData = UserData()
Example #3
0
class UserLogic(object):
    def __init__(self):
        self.userData = UserData()

    def get_one(self, id_user):
        try:
            return self.userData.get_one(id_user)
        except:
            return None

    def get_one_by_credentials(self, email, password):
        try:
            return self.userData.get_one_by_credentials(email=email, password=password)
        except:
            return None

    def get_one_by_user(self, email):
        try:
            return self.userData.get_one_by_user(email=email)
        except:
            return None

    def get_all(self):
        return self.userData.get_all()

    def insert(self, user):
        self.userData.insert(user)
        return True

    def remove(self, id_user):
        user = self.get_one(id_user)
        if user is None:
            return False
        else:
            self.userData.remove(user.id_user)
            return True

    def update(self, user):
        self.userData.update(user)
        return True

    def regla_1(self, user):
        if self.get_one_by_user(user.email) is not None:
            raise UserException("El usuario ya existe.")
        return True

    def insert(self, user):
        if not self.regla_1(user):
            return False
        self.userData.insert(user)
        return True

    def remove(self, id_user):
        user = self.get_one(id_user)
        if user is None:
            return False
        else:
            self.userData.remove(user.id_user)
            return True

    def insert_coin_fav(self, coin_fav):
        self.userData.insert_coin_fav(coin_fav)
        return True

    def remove_coin_fav(self, id_user, ticker):
        coin_fav = self.userData.get_one_coin(id_user, ticker)
        if coin_fav is None:
            return False
        else:
            self.userData.remove_coin_fav(id_user, ticker)
            return True

    def coin_fav_user(self, id_user):
        fav = []
        fav = self.userData.get_fav_user(id_user)
        return fav

    def is_coin_fav(self, id_user, ticker):
        coin = self.userData.get_one_coin(id_user, ticker)
        if coin is None:
            return False
        else:
            return True

    def updateCoin(self, id_user, ticker, quantity, price):
        coin = self.userData.get_one_coin(id_user=id_user, ticker=ticker)
        if coin is not None:
            coin.trade_price = price
            coin.trade_quantity = quantity
        self.userData.update_coin(coin)
Example #4
0
def update(user: UserData) -> UpdateResult:
    user_doc = user.to_doc()
    return mongo_crud_wrapper.update(COLLECTION_NAME, user_doc)
Example #5
0
def get(user_id: ObjectId) -> BaseData:
    user_doc = mongo_crud_wrapper.get(COLLECTION_NAME, user_id)
    return UserData.from_doc(user_doc)
Example #6
0
def create(user: UserData) -> BaseData:
    user_doc = user.to_doc()
    mongo_crud_wrapper.create(COLLECTION_NAME, user_doc)
    return UserData.from_doc(user_doc)
Example #7
0
def test_get_doc(user: UserData, object_id):
    user.uid = object_id
    user_doc = user.to_doc()
    data_obj = UserData.from_doc(user_doc)
    assert data_obj == user
Example #8
0
def test_to_json(user: UserData, object_id):
    user.uid = object_id
    user_json = user.to_json()
    loaded_json = UserData.from_json(user_json)
    assert loaded_json == user
2021-05-03
"""

from datetime import datetime, timedelta
import sqlite3

from data.post_data import PostData, PostModel
from data.snapshot_data import SnapshotData, SnapshotModel, SnapshotFrontpageModel
from data.user_data import UserData
from services import post_service
from utils.logger import logger
from utils.reddit import base36decode

_post_data = PostData()
_snapshot_data = SnapshotData()
_user_data = UserData()

DB_FILE = "src/database.db"


def migrate_posts(offset=0):
    """Grabs posts in batches of 1000 at a time and migrates them to the new database.
    Returns number of processed rows. If less than 1000, at end of the table."""
    conn = sqlite3.connect(DB_FILE)
    conn.row_factory = sqlite3.Row

    rows = conn.execute("SELECT * FROM posts LIMIT 1000 OFFSET ?;",
                        (offset, )).fetchall()

    conn.close()