Exemple #1
0
def loadmembers():
    """ load members from csv """
    db_orm.drop_all()
    db_orm.create_all()

    # create null account type
    AccountModel(app).create([{
        "id": NULL_ACCT_ID,
        "description": "NULL ACCOUNT"
    }])

    with open("data/member_data.csv") as f:
        reader = csv.DictReader(f)
        lines = [
            {
                # "id": line["id"],
                "fname": line["first_name"],
                "lname": line["last_name"],
                "phone": line["phone_number"],
                # set members without account id to a "null account" id
                "mem_id": line.get("client_member_id", NULL_ACCT_ID),
                "acct_id": line.get("account_id"),
                "created_at": datetime.utcnow(),
                "updated_at": datetime.utcnow(),
            } for line in reader
        ]

        # setup the accounts ref data
        ac = {line["acct_id"] for line in lines}
        AccountModel(app).create(ac)

        # create members
        res = MemberModel(app).create(lines)
        # db_orm.session.commit()
        print(f"created {len(res)}")
    def _create_fake_account(self):
        self.primary_user = AccountModel(id='primary_user',
                                         pw=self.encrypted_primary_user_pw,
                                         shortest_cycle=25,
                                         longest_cycle=35,
                                         last_mens_start_date=datetime(
                                             2018, 5, 15)).save()

        self.secondary_user = AccountModel(id='secondary_user',
                                           pw=self.encrypted_secondary_user_pw,
                                           shortest_cycle=28,
                                           longest_cycle=32,
                                           last_mens_start_date=datetime(
                                               2018, 5, 20)).save()
    def post(self):
        """
        페이스북 계정 로그인
        """
        payload = request.json

        fb_id = payload['fbId']

        user = AccountModel.objects(id=fb_id).first()

        if not user:
            # 사용자가 미존재, 회원가입을 함께 시켜줌
            if self.is_available_fb_id(fb_id):
                user = AccountModel(id=fb_id).save()
            else:
                abort(401)

        return {
            'accessToken':
            create_access_token(
                TokenModel.generate_token(AccessTokenModel, user)),
            'refreshToken':
            create_refresh_token(
                TokenModel.generate_token(RefreshTokenModel, user))
        }
Exemple #4
0
    def post(self):
        """
        회원가입
        """
        payload = request.json

        email = payload['email']
        pw = payload['pw']

        if AccountModel.objects(email=email):
            return Response('', 409)

        mail_client = current_app.config['MAIL_CLIENT']

        code = generate_email_certification_code(email)

        msg = Message('Please verify user email',
                      sender=current_app.config['MAIL_USERNAME'],
                      recipients=[email])
        msg.html = '<a href="http://{0}:{1}/certify/{2}">인증하기</a>'.format(
            current_app.config['REPRESENTATIVE_HOST']
            or current_app.config['HOST'],
            current_app.config['PORT'] if not current_app.testing else 80,
            code)

        mail_client.send(msg)

        AccountModel(email=email, pw=generate_password_hash(pw)).save()

        return Response('', 201)
Exemple #5
0
def store_account(token):
    account = AccountModel(
        token=token
    )

    db.session.add(account)
    db.session.commit()

    portfolio = PortfolioModel(
        account_id=account.id
    )

    db.session.add(portfolio)
    db.session.commit()
Exemple #6
0
    def post(self):
        """
        자체 계정 회원가입
        """
        payload = request.json

        id = payload['id']

        if AccountModel.objects(id=id):
            abort(409)
        else:
            AccountModel(id=id,
                         pw=generate_password_hash(payload['pw'])).save()

            return Response('', 201)
Exemple #7
0
    def post(self):
        """
        회원가입 
        """
        rq = request.form
        id = rq['id']
        pw = rq['pw']
        nickname = rq['nickname']
        phone = rq['phone']

        if AccountModel.objects(id=id).first():
            return Response('', 205)

        AccountModel(id=id, pw=pw, nickname=nickname, phone=phone).save()

        return Response('', 201)
Exemple #8
0
    def post(self):
        """
        서비스 자체 회원가입
        """
        id = request.json['id']
        pw = request.json['pw']
        name = request.json['name']

        hashed_pw = generate_password_hash(pw)

        if AccountModel.objects(id=id).first():
            return Response('', 204)

        AccountModel(id=id, pw=hashed_pw, name=name).save()

        return Response('', 201)
Exemple #9
0
 def open_account(self, client_data: Dict[str, str]):
     account = AccountModel()
     client_index_position = self.add_client(client_data, account)
     self._index_client.add(client_data['username'], client_index_position)
 def _create_fake_accounts(self):
     AccountModel(id=self.id, pw=self.hashed_pw, name='test').save()