Ejemplo n.º 1
0
def create_app(config_name):
    """FlaskAPI provides an implementation of browsable APIs"""
    app = FlaskAPI(__name__)
    APP_ROOT = os.path.dirname(app.instance_path)
    app.config.from_object(application_config[config_name])
    app.config.from_pyfile(APP_ROOT + '/config.py')

    database_connection = DatabaseConnection()
    database_connection.create_tables()

    return app
Ejemplo n.º 2
0
def start_tg_bot():
    parser = argparse.ArgumentParser(description='TG / IRC bridge bot')
    parser.add_argument('--config',
                        metavar='path',
                        type=str,
                        required=True,
                        help='path to config file')
    parser.add_argument('--debug',
                        dest='debug',
                        action='store_true',
                        required=False,
                        default=False,
                        help='Activate debugging output')
    cliargs = parser.parse_args()

    if cliargs.debug:
        logger.setLevel(logging.DEBUG)
        logger.info('Loglevel set to DEBUG')

    vectronconfig = load_from_file(cliargs.config)
    tg_bot = TGBot(vectronconfig)

    dbc = DatabaseConnection()
    dbc.create_tables()
    # irc_server = IRCServer('Freenode', 'chat.freenode.net')
    # dbc.add_irc_server(irc_server)

    # irc_server = IRCServer('Quakenet', 'irc.quakenet.org', port=6667, ssl=False)
    # dbc.add_irc_server(irc_server)
    # irc_server = IRCServer('IRCNet', 'open.ircnet.org', port=6666)
    # dbc.add_irc_server(irc_server)
    # irc_server = IRCServer('Undernet', 'eu.undernet.org', port=6667)
    # dbc.add_irc_server(irc_server)

    bridges = dbc.get_all_bridges()
    for bridge in bridges:
        tg_bot.create_bridge(bridge['tg_id'],
                             bridge['irc_server_description'],
                             bridge['irc_channel'],
                             bridge['token'],
                             bridge['validated'],
                             only_add_channel=True)

    # delete old files if the data retention is > 0
    if vectronconfig['webserver_data_retention'] > 0:
        cron_delete = CronDelete(vectronconfig)
        cron_delete.start()

    tg_bot.start_webhook()
Ejemplo n.º 3
0
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import logging
from tg_bot import TGBot
from database import DatabaseConnection
from filehandler import CronDelete
from config import config
from irc_server import IRCServer

if __name__ == "__main__":

    tg_bot = TGBot()

    dbc = DatabaseConnection()
    dbc.create_tables()
    # irc_server = IRCServer('Freenode', 'chat.freenode.net')
    # dbc.add_irc_server(irc_server)

    # irc_server = IRCServer('Quakenet', 'irc.quakenet.org', port=6667, ssl=False)
    # dbc.add_irc_server(irc_server)
    # irc_server = IRCServer('IRCNet', 'open.ircnet.org', port=6666)
    # dbc.add_irc_server(irc_server)
    # irc_server = IRCServer('Undernet', 'eu.undernet.org', port=6667)
    # dbc.add_irc_server(irc_server)

    bridges = dbc.get_all_bridges()
    for bridge in bridges:
        tg_bot.create_bridge(bridge['tg_id'],
                             bridge['irc_server_description'],
                             bridge['irc_channel'],
Ejemplo n.º 4
0
from flask import Flask
from database import DatabaseConnection

app = Flask(__name__)

database_connection = DatabaseConnection()
database_connection.create_tables()

from app.views import users
from app.views import produce
from app.views import client_request
    def setUp(self):
        self.client = app.test_client()
        app.config.from_object(application_config['TestingEnv'])
        db = DatabaseConnection('testdatabase')
        db.create_tables()

        self.empty_user = json.dumps({
            "name": "",
            "email": "",
            "password": "",
            "confirm_password": "",
            "role": ""
        })

        self.users = json.dumps({
            "name": "Nabulo Vivian",
            "email": "*****@*****.**",
            "password": "******",
            "confirm_password": "******",
            "role": "admin"
        })
        self.new_user = json.dumps({
            "name": "Mukuwa Geoffrey",
            "email": "*****@*****.**",
            "password": "******",
            "confirm_password": "******",
            "role": "admin"
        })
        self.new_user_register = json.dumps({
            "name": "Mukuwa Geoffrey",
            "email": "*****@*****.**",
            "password": "******",
            "confirm_password": "******",
            "role": "admin"
        })
        self.missing_params = json.dumps({
            "": "*****@*****.**",
            "password": "******"
        })
        self.no_mail_login = json.dumps({"email": "", "password": "******"})
        self.wrong_password = json.dumps({
            "email": "*****@*****.**",
            "password": "******"
        })
        self.valid_user = json.dumps({
            "email": "*****@*****.**",
            "password": "******"
        })

        self.product = json.dumps({
            "product_name": "Frames",
            "category": "Furniture",
            "quantity": 1,
            "unit_price": 50
        })
        self.empty_product = json.dumps({
            "product_name": "",
            "category": "",
            "quantity": 1,
            "unit_price": 50
        })
        self.sale = json.dumps({
            "products_id": 5,
            "quantity": 8,
            "unit_price": 5000
        })
        self.empty_sale = json.dumps({
            "products_id": "",
            "quantity": "",
            "unit_price": 5000
        })

        self.result_empty_sale = ("Check your input values."
                                  "\n products_id, quantity and unit price "
                                  "\n\t\t\t\t- Required"
                                  "\n\t\t\t\t- Must be an integer "
                                  "\n\t\t\t\t- Must begin with a number")
        self.result_empty_string = ("Check your input values."
                                    "\n name*"
                                    " \n\t\t\t\t- Required"
                                    "\n\t\t\t\t- Must be a string, "
                                    "\n\t\t\t\t- Minlength: 2 characters"
                                    "\n\t\t\t\t- Must begin with a character"
                                    "\n Email*"
                                    "\n\t\t\t\t- Required"
                                    "\n\t\t\t\t- Must begin with any character"
                                    "\n\t\t\t\t- Must be a valid mail"
                                    "\n Password* "
                                    "\n\t\t\t\t- Required"
                                    "\n\t\t\t\t- Must be a string "
                                    "\n\t\t\t\t- Minlength : 5 characters"
                                    "\n\t\t\t\t- Must begin with a character")
        self.empty_email = ("\n Email*"
                            "\n\t\t\t\t- Required"
                            "\n\t\t\t\t- Must begin with any character"
                            "\n\t\t\t\t- Must be a valid mail"
                            "\n Password* "
                            "\n\t\t\t\t- Required"
                            "\n\t\t\t\t- Must be a string "
                            "\n\t\t\t\t- Minlength : 5 characters"
                            "\n\t\t\t\t- Must begin with a character")
        self.result_empty_product = ("Check your input values."
                                     "\n product Name* and category"
                                     " \n\t\t\t\t- Required"
                                     "\n\t\t\t\t- Must be a string, "
                                     "\n\t\t\t\t- Minlength: 2 characters"
                                     "\n\t\t\t\t- Must begin with a character"
                                     "\n quantity and unit price "
                                     "\n\t\t\t\t- Required"
                                     "\n\t\t\t\t- Must be an integer "
                                     "\n\t\t\t\t- Must begin with a number")

        response = self.client.post('/api/v1/auth/login',
                                    content_type='application/json',
                                    data=self.valid_user)
        json_data = json.loads(response.data.decode())
        self.token = json_data['token']
        self.header = {'x-access-token': self.token}

        payload = {
            'exp': datetime.datetime.utcnow() + datetime.timedelta(days=1),
            'iat': datetime.datetime.utcnow(),
            'sub': 7
        }
        self.invalid_token = jwt.encode(payload,
                                        'thisissecrete',
                                        algorithm='HS256')
        self.wrong_header = {'xgfcjkhbn': self.invalid_token}