Esempio n. 1
0
def update(colla, body):
    name = body['name']
    uni = body['uni']
    description = body['description']
    phoneNumber = body['phoneNumber']
    email = body['email']
    web = body['web']
    address = body['address']
    color = body['color']
    img = body['img']

    image_name = None
    if img is not None:
        if colla.img is not None and os.path.exists(colla.img):
            os.remove(colla.img)
        image_name = os.path.expanduser("~/images/colles") + "/" + colla.name.lower() + ".png"
        with open(image_name, "wb") as fh:
            fh.write(img.decode('base64'))

    colla.name = name
    colla.uni = uni
    colla.description = description
    colla.phoneNumber = phoneNumber
    colla.email = email
    colla.web = web
    colla.address = address
    colla.color = color
    colla.img = image_name

    db_configuration = json.loads(open("api/db/db.json").read())
    from api.db.CtrlFactory import get_colla_ctrl
    colla_ctrl = get_colla_ctrl(DB(db_configuration).get_database_connection())
    colla_ctrl.update(colla)
    colla.img = img
    return colla
    def test_get_followed_colles_by_user(self):
        test_user = User(name='Test_name',
                         surname='Test surnames',
                         email='*****@*****.**',
                         password='')
        user_ctrl = get_user_ctrl(self.cnx)
        user_ctrl.insert(test_user)

        colla1 = Colla(name='Test colla 1', uni=0, color='#FFFFFF')
        colla2 = Colla(name='Test colla 2', uni=1, color='#FFFFFF')
        colla3 = Colla(name='Test colla 3', uni=1, color='#FFFFFF')

        colla_ctrl = get_colla_ctrl(self.cnx)
        colla_ctrl.insert(colla1)
        colla_ctrl.insert(colla2)
        colla_ctrl.insert(colla3)

        sql = "INSERT INTO follows(id_user, id_colla) VALUES ('%s','%s')"
        data = [(test_user.id, colla1.id), (test_user.id, colla2.id)]

        self.cnx.cursor().executemany(sql, data)

        following_ctrl = get_following_ctrl(self.cnx)

        following_colles = following_ctrl.get_followed_by_user(test_user.id)

        self.assertEquals(2, len(following_colles))
        self.assertEquals(colla1, following_colles[0])
        self.assertEquals(colla2, following_colles[1])
Esempio n. 3
0
    def test_insert(self):
        colla = Colla(name="Test_Name", uni=0, color="#123456")

        db_colla = get_colla_ctrl(self.cnx).insert(colla)

        self.assertIsNotNone(db_colla.id)
        self.assertEquals("Test_Name", db_colla.name)
        self.assertFalse(db_colla.uni)
        self.assertEquals("#123456", db_colla.color)
Esempio n. 4
0
def revoke_admin():
    user_id = request.args.get('user_id')
    colla_id = request.args.get('colla_id')
    if colla_id is None or user_id is None:
        abort(400)
    db_configuration = json.loads(open("api/db/db.json").read())
    from api.db.CtrlFactory import get_user_ctrl
    user = get_user_ctrl(DB(db_configuration).get_database_connection()).get(user_id)
    from api.db.CtrlFactory import get_colla_ctrl
    colla = get_colla_ctrl(DB(db_configuration).get_database_connection()).get(colla_id)
    if colla is None or user is None:
        abort(404)
    from api.db.CtrlFactory import get_admin_ctrl
    get_admin_ctrl(DB(db_configuration).get_database_connection()).delete(user.id, colla.id)
    return make_response(jsonify({}), 202)
Esempio n. 5
0
def get_all_info_colla(colla_id):
    db_configuration = json.loads(open("api/db/db.json").read())
    from api.db.CtrlFactory import get_colla_ctrl
    colla_ctrl = get_colla_ctrl(DB(db_configuration).get_database_connection())
    colla = colla_ctrl.get_full(colla_id)
    encoded_img = None
    if colla:
        if colla.img is not None:
            try:
                img_path = os.path.expanduser(colla.img)
                with open(img_path, "rb") as fh:
                    encoded_img = base64.b64encode(fh.read())
            except IOError:
                pass
            finally:
                colla.img = encoded_img
    return colla
Esempio n. 6
0
def follow(user_id):
    db_configuration = json.loads(open("api/db/db.json").read())
    user_ctrl = get_user_ctrl(DB(db_configuration).get_database_connection())
    user = user_ctrl.get(user_id)
    if user is None:
        abort(404)
    else:
        colla_id = request.args.get('colla_id')
        if colla_id is not None:
            colla = get_colla_ctrl(
                DB(db_configuration).get_database_connection()).get(colla_id)
            if colla:
                user_service.add_following(user.id, colla_id)
                user = user_service.get_all_info(user)
                return make_response(jsonify(user.__dict__), 200)
            else:
                abort(404)
        abort(400)
Esempio n. 7
0
def get_all():
    db_configuration = json.loads(open("api/db/db.json").read())
    from api.db.CtrlFactory import get_colla_ctrl
    colla_ctrl = get_colla_ctrl(DB(db_configuration).get_database_connection())
    colles = colla_ctrl.get_all()

    # for colla in colles:
    #     encoded_img = None
    #     if colla.img is not None:
    #         try:
    #             img_path = os.path.expanduser(colla.img)
    #             with open(img_path, "rb") as fh:
    #                 encoded_img = base64.b64encode(fh.read())
    #         except IOError:
    #             pass
    #         finally:
    #             colla.img = encoded_img

    return colles
Esempio n. 8
0
    def test_get_all(self):
        sql = 'INSERT INTO colles (name, uni, color, img_path) ' \
              'VALUES ("%s", "%s", "%s", "%s")' % ('Test_Name', 1, 'FFFFFF', '~/TestProjectes')
        cursor = self.cnx.cursor()
        cursor.execute(sql)

        sql = 'INSERT INTO colles (name, uni, color, img_path) ' \
              'VALUES ("%s", "%s", "%s", "%s")' % ('Test_Name2', 1, 'FFFFFF', '~/TestProjectes')
        cursor = self.cnx.cursor()
        cursor.execute(sql)

        sql = 'INSERT INTO colles (name, uni, color, img_path) ' \
              'VALUES ("%s", "%s", "%s", "%s")' % ('Test_Name3', 0, 'FFFFFF', '~/TestProjectes')
        cursor = self.cnx.cursor()
        cursor.execute(sql)

        colles = get_colla_ctrl(self.cnx).get_all()

        self.assertIsNotNone(colles)
        self.assertEquals(3, len(colles))
Esempio n. 9
0
def add_performance(item):
    db_configuration = json.loads(open("api/db/db.json").read())
    from api.db.CtrlFactory import get_result_ctrl
    result_ctrl = get_result_ctrl(
        DB(db_configuration).get_database_connection())
    pub_date = strptime(item.pubDate.string[:-6], '%a, %d %b %Y %H:%M:%S')
    performance = Performance(title=item.title.string,
                              date=datetime.fromtimestamp(mktime(pub_date)))
    performance = result_ctrl.insert_performance(performance)

    inner_html = BeautifulSoup(item.description.string, 'html.parser')
    rows = inner_html.find('table').find_all('tr')
    colla_name = None
    colla = None
    first = True
    from api.db.CtrlFactory import get_colla_ctrl
    for row in rows:
        if first:
            first = False
        else:
            cells = row.find_all('td')
            name = cells[0].get_text()
            if colla_name != name and name.encode('utf-8') != '':
                colla_name = name
                colla = get_colla_ctrl(
                    DB(db_configuration).get_database_connection()
                ).get_by_name(colla_name)
            if colla:
                ronda = Round(num=cells[1].get_text(),
                              tries=cells[2].get_text(),
                              castell=cells[3].get_text(),
                              result=cells[4].get_text())
                try:
                    result_ctrl.insert_result(performance, colla, ronda)
                except _mysql_exceptions.IntegrityError:
                    pass
    return