コード例 #1
0
ファイル: server.py プロジェクト: SinghHrmn/ecommerce-flask
def userView(user_id):
    user = UserModel().user(user_id)
    if request.method == 'PUT':
        UserModel().updateUser(request.form)
    elif request.method == 'POST':
        UserModel().createUser(request.form)
    elif request.method == 'DELETE':
        UserModel().deleteUser(request.form['id'])
    else:
        return render_template('admin/user.html', user=user)
コード例 #2
0
    def test_pa3(self):
        testdata = zip([(1024, 77), (1024, 268), (1024, 462), (1024, 393),
                        (1024, 36955), (2048, 77), (2048, 36955), (2048, 788)],
                       [
                           "1024,77,4.3848,Memento (2000)",
                           "1024,268,2.8646,Batman (1989)",
                           "1024,462,3.1082,Erin Brockovich (2000)",
                           "1024,393,3.8722,Kill Bill: Vol. 2 (2004)",
                           "1024,36955,2.3524,True Lies (1994)",
                           "2048,77,4.8493,Memento (2000)",
                           "2048,36955,3.9698,True Lies (1994)",
                           "2048,788,3.8509,Mrs. Doubtfire (1993)",
                       ])

        data = DataIO(verbose=False)
        data.load('testdata/ratings.csv',
                  items_file='testdata/movie-titles.csv')
        model = UserModel(verbose=False, normalize=True)
        model.build(data)

        for ((u, i), s) in testdata:
            self.assertTrue(
                '%s' % s == '%d,%d,%.4f,%s' %
                (u, i,
                 user_based_knn(model,
                                30, [data.new_user_idx(u)],
                                [data.new_item_idx(i)],
                                cosine,
                                promote_users=True,
                                normalize='centered'), data.title(i)))
コード例 #3
0
ファイル: access_request.py プロジェクト: dan-hill/jabberfire
    def post(data):
        json = request.json['accessRequest']

        user = UserModel.find(email=json['email'])

        if user is not None:
            resp = jsonify({'status': 409, 'message': 'Conflict.'})
            resp.status_code = 409
            return resp

        user = UserModel(email=json['email'],
                         firstname=json['firstname'],
                         lastname=json['lastname'],
                         username=json['firstname'] + '.' + json['lastname'],
                         status='pending',
                         employee_id=json['employee_id'],
                         password=json['password'])

        if user.save():
            user = user.find(username=user.username)

            users = UserModel.find(role='administrator')

            for u in users:
                message = Message()
                message.type = 'access-request'
                message.to_user = u

            resp = jsonify({'accessRequest': {'id': user.id}})
            resp.status_code = 201
            return resp

        resp = jsonify({'status': 400, 'message': 'Bad Request.'})
        resp.status_code = 400
        return resp
コード例 #4
0
    def post(self):
        json_input = request.get_json()
        try:
            data = user_schema.load(json_input)
        except ValidationError as err:
            abort(422, errors=err.messages)

        try:
            UserModel.objects.get(username=data['username'])
            abort(
                400,
                errors=f"user {data['username']} is already registered.",
            )
        except DoesNotExist:
            pass

        user = UserModel(
            username=data['username'],
            password=generate_password_hash(data['password']),
            role=data['role'],
        )
        user.save()
        message = f"Successfully created user: {user.username}"

        data = user_schema.dump(user)
        data['message'] = message
        return data, 201
コード例 #5
0
    def post(self):
        data = parser.parse_args(strict=True)
        # check if user exists already
        if UserModel.find_by_username(data['username']):
            return {
                'message': 'User {} already exists'.format(data['username'])
            }
        # create a new user
        new_user = UserModel(username=data['username'],
                             password=UserModel.generate_hash(
                                 data['password']))
        # attempt saving user to the DB
        try:
            new_user.save_to_db()
            # create temporary access token
            access_token = create_access_token(identity=data['username'])
            refresh_token = create_refresh_token(identity=data['username'])

            return {
                'message': 'User {} was created'.format(data['username']),
                'access_token': access_token,
                'refresh_token': refresh_token
            }
        except:
            return {
                'message': 'Something went wrong while creating the user'
            }, 500
コード例 #6
0
def register():
    message = ''
    form = forms.RegisterForm()

    if form.is_submitted():
        print(form.validate_on_submit())
        if form.validate_on_submit():
            d = json.dumps({
                "fullname": form.name.data,
                "email": form.email.data,
                "password": form.password.data
            })

            d = user_schema_single.loads(d)

            new_user = UserModel(fullname=d["fullname"],
                                 email=d["email"],
                                 password=d["password"])

            db.session.add(new_user)
            try:
                db.session.commit()
            except Exception as e:
                print(e)
                db.session.rollback()
                return "User could not be saved."

            return f"Welcome {form.name.data}."
        else:
            message = "Form is invalid."
    return render_template('register.html', form=form, message=message)
コード例 #7
0
 def run(self):
     print("working ...")
     user = UserModel("nombre", "*****@*****.**")
     r = requests.post(url='http://localhost:8000/users/',
                       data=user.getUserDictionary(),
                       auth=("zehemz", "isveckson"))
     self.__callback.threadFinished(r)
     print("Termine! ...")
コード例 #8
0
ファイル: app.py プロジェクト: yuriichornyii/Task
def random_users():
    db.drop_all()
    db.create_all(app=app)
    users = RandomUser.generate_users(100, {'gender': 'male'})
    for user in users:
        user = UserModel(first_name=user.get_first_name(),
                         last_name=user.get_last_name(),
                         dob=user.get_dob(),
                         gender=user.get_gender()
                         # may add more fields(city, number ...)
                         )
        db.session.add(user)
        db.session.commit()
    return app
コード例 #9
0
def create_user_instance(
        userid,
        username,
        password,
        record
    ):
    user = UserModel()

    user.userid = userid
    user.username = username
    user.password = password
    user.record = record

    user.save()
    return user
コード例 #10
0
ファイル: handler.py プロジェクト: CaerDarrow/tornado_swagger
 async def post(self, user_id=None):
     """
     summary: Создать пользователя
     description: тест
     """
     user = self.get_body(UserModel)
     try:
         user = UserModel(**user)
     except ValidationError as e:
         return self.finish_with_error()
     try:
         user_id = await self.application.db.users.create(user)
     except Exception as e:  # DatabaseException
         return self.finish_with_error()
     return self.finish_with_ok(
         BaseResponse(status_code=200, reason='user_created', data=user_id))
コード例 #11
0
ファイル: app.py プロジェクト: jackyhocs/htn-api
    def get(self):
        '''
        Returns a list of all users
        :return:
        Failure - Error codes: 500
        Success - List: 200
        '''
        user_model = UserModel()
        try:
            users = user_model.get_all_users()
        except (DatabaseError, IntegrityError):
            return {"message": "Internal Server Error"}, 500
        except Exception as e:
            return {"message": "Exception : {}".format(str(e))}, 500

        return users, 200
コード例 #12
0
ファイル: app.py プロジェクト: jackyhocs/htn-api
    def get(self):
        '''
        Returns a list of skills that match the parameters entered by the user
        :return:
        Failure - Error codes: 500
        Success - List: 200
        '''
        params = request.args.to_dict()
        user_model = UserModel()
        try:
            skills = user_model.find_skill_by_params(params)
        except (DatabaseError, IntegrityError) as e:
            return {"message": "Internal Server Error {}".format(e)}, 500
        except Exception as e:
            return {"message": "Exception : {}".format(str(e))}, 500

        return skills, 200
コード例 #13
0
ファイル: handler.py プロジェクト: CaerDarrow/tornado_swagger
 async def get(self, user_id: UUID):
     """
     summary: Получение информации о пользователе по id
     description: тест
     """
     try:
         user = dict(
             name='samuel colvin',
             username='******',
             password1='zxcvbn',
             password2='zxcvbn',
         )
         user = UserModel(**user)
         return self.finish_with_ok(
             BaseResponse(status_code=200, reason='user_found', data=user))
     except ValidationError as e:
         return self.finish_with_error(
             BaseResponse(status_code=422, reason='validation error'))
コード例 #14
0
ファイル: user_list.py プロジェクト: dan-hill/jabberfire
    def post(self):
        json = request.json['user']

        user = UserModel(firstname=json['firstname'],
                         lastname=json['lastname'],
                         email=json['email'],
                         username=json['firstname'] + '.' + json['lastname'],
                         employee_id=json['employee_id'],
                         status=json['status'],
                         password=''.join(
                             random.choice(string.ascii_uppercase +
                                           string.digits) for _ in range(12)),
                         role=json['role'])

        for department in json['departments']:
            user.departments.append(Department.find(id=department['id']))

        user.save()

        departments = []
        for department in user.departments:
            departments.append({
                'id': department.id,
                'parent_id': department.parent_id,
                'name': department.name,
                'description': department.description
            })

        model = {
            'user': {
                'id': user.id,
                'user_id': user.id,
                'firstname': user.firstname,
                'lastname': user.lastname,
                'email': user.email,
                'username': user.username,
                'employee_id': user.employee_id,
                'status': user.status,
                'role': user.role,
                'departments': departments
            }
        }
        print model
        return jsonify(model), 201
コード例 #15
0
    def __init__(self):
        self.make_rates()
        self.token = '1032122116:AAFMa6ewEqjbV9cYsu34kekzLJZo7ITq3Jw'
        self.model = UserModel(self.currencies, self.rates,
                               util.Categorizer().get_categories())

        self.add_callback = BankAdderCallback(self.model)

        self.balance_callback = TotalBalanceCallback(self.model)
        self.account_callback = DisplayAccountsCallback(self.model)

        self.list_category_callback = ListCategoriesCallback(self.model)
        self.category_spent_callback = ShowCategoryTotalCallback(self.model)
        self.category_transactions = ShowCategoryTransactionsCallback(
            self.model)

        self.set_limit_callback = SetLimitCallback(self.model)
        self.show_limit_callback = ShowLimitCallback(self.model)
        self.show_freedom_callback = ShowLimitCallback(self.model)
        self.paid_callback = ShowSpentCallback(self.model)
コード例 #16
0
    def get(self):
        code = self.get_argument('code')
        state = self.get_argument('state')
        wechat_conf = utils.config.get_section('wechat')
        app_id = wechat_conf['appid']
        app_secret = wechat_conf['appsecret']
        web_url = utils.config.get('global', 'url')
        oauth_client = WeChatOAuth(app_id, app_secret, '')
        oauth_client.fetch_access_token(code)

        user_info = oauth_client.get_user_info()

        user_model = self.model_config.first(
            UserModel, open_id=user_info['openid'])  # type:UserModel
        if user_model:
            user_model.profile = user_info['headimgurl']
            user_model.nickname = user_info['nickname']
            self.model_config.commit()
        else:
            user_model = UserModel(nickname=user_info['nickname'],
                                   open_id=user_info['openid'],
                                   sex=user_info['sex'],
                                   province=user_info['province'],
                                   country=user_info['country'],
                                   city=user_info['city'],
                                   profile=user_info['headimgurl'],
                                   privilege=user_info['privilege'],
                                   union_id=user_info['unionid'])
            self.model_config.add(user_model)
        self.session['user_id'] = user_model.id
        self.session['open_id'] = user_model.open_id
        self.session.save()
        if self.session.get('current_url', ''):
            current_url = urllib.unquote_plus(self.session.get('current_url'))
            self.session['current_url'] = ''
            self.session.save()
            self.logger.info('current_url:%s' % current_url)
            self.redirect(current_url)
        else:
            self.logger.info('current_url:   null')
            self.redirect(web_url)
コード例 #17
0
ファイル: app.py プロジェクト: jackyhocs/htn-api
    def get(self, _id):
        '''
        Takes in an int as an id and returns the dictionary of the User
        :param _id:
        :return:
        Failure - Error codes: 500, 404
        Success - Dictionary: 200
        '''
        user_model = UserModel()
        try:
            user = user_model.get_by_id(_id)
        except DataError:
            return {
                "message": "User with ID {} does not exist".format(_id)
            }, 404
        except (DatabaseError, IntegrityError):
            return {"message": "Internal Server Error"}, 500
        except Exception as e:
            return {"message": "Exception : {}".format(str(e))}, 500

        return user.get_fields(), 200
コード例 #18
0
ファイル: app.py プロジェクト: jackyhocs/htn-api
    def put(self, _id, **kwargs):
        '''
        Takes in an int as an id and updates the user with the validated payload
        :param _id:
        :return:
        Failure - Error codes: 500, 404
        Success - Dictionary: 200
        '''
        payload = kwargs.get('payload', None)
        user_model = UserModel()
        try:
            user = user_model.update_user(_id, payload)
        except DataError:
            return {
                "message": "User with ID {} does not exist".format(_id)
            }, 404
        except (DatabaseError, IntegrityError):
            return {"message": "Internal Server Error"}, 500
        except Exception as e:
            return {"message": "Exception : {}".format(str(e))}, 500

        return user.get_fields(), 200
コード例 #19
0
def create(request):
    request_json = request.get_json()
    id = request_json['phone']

    userModel = UserModel(**request_json)
    userResponse.userModel = userModel.__dict__

    user = users_ref.document(id).get().to_dict()

    if (user == None):
        users_ref.document(id).set(userModel.__dict__)
        userResponse.result = {
            "code": "1",
            "title": "註冊完成",
        }
    else:
        userResponse.result = {
            "code": "-1",
            "title": "重複註冊",
            "description": "本手機(" + str(id) + ")已由他人註冊"
        }

    return userResponse.__dict__
コード例 #20
0
    def post(self):
        current_time = datetime.datetime.now()

        nickname = self.get_json_argument('nickname')
        open_id = ''  # TODO: 前端传open_id?还是后端获取?
        sex = self.get_json_argument('sex')
        province = self.get_json_argument('province')
        city = self.get_json_argument('city')
        country = self.get_json_argument('country')
        profile = self.get_json_argument('profile')
        privilege = self.get_json_argument('privilege')
        union_id = self.get_json_argument('union_id')
        name = self.get_json_argument('name')
        job = self.get_json_argument('job')
        company = self.get_json_argument('company')
        phone = self.get_json_argument('phone')
        email = self.get_json_argument('email')

        user = UserModel(nickname=nickname, open_id=open_id, sex=sex, province=province, city=city, country=country,
                         profile=profile, privilege=privilege, union_id=union_id, name=name, job=job, company=company,
                         phone=phone, email=email, is_del=False, create_time=current_time, update_time=current_time)
        self.model_config.add(user)
        return {'user_id': user.id}
コード例 #21
0
def update(request):

    request_json = request.get_json()
    id = request_json['phone']

    userModel = UserModel(**request_json)
    userResponse.userModel = request_json

    user = users_ref.document(id).get().to_dict()
    if (user != None):
        users_ref.document(id).set(userModel.__dict__, merge=True)
        userResponse.result = {
            "code": "1",
            "title": "修改完成",
        }
    else:
        userResponse.userModel = {}
        userResponse.result = {
            "code": "-1",
            "title": "修改失敗",
            "description": "本手機(" + str(id) + ")尚未由他人註冊"
        }

    return userResponse.__dict__
コード例 #22
0
 def user_to_dynamodb(self):
     UserModel.create_table(read_capacity_units=1, write_capacity_units=1)
     user = UserModel(self.user['id'])
     user.screen_name  = self.user['screen_name']
     user.gender  = self.user['gender']
     user.statuses_count  = self.user['statuses_count']
     user.followers_count  = self.user['followers_count']
     user.follow_count  = self.user['follow_count']
     user.registration_time = self.user['registration_time']
     user.sunshine = self.user['sunshine']
     user.birthday = self.user['birthday']
     user.location = self.user['location']
     user.education = self.user['education']
     user.company = self.user['company']
     user.description  = self.user['description']
     user.profile_url  = self.user['profile_url']
     user.profile_image_url  = self.user['profile_image_url']
     user.avatar_hd  = self.user['avatar_hd']
     user.urank  = self.user['urank']
     user.mbrank  = self.user['mbrank']
     user.verified  = self.user['verified']
     user.verified_type  = self.user['verified_type']
     user.verified_reason  = self.user['verified_reason']
     user.save()
コード例 #23
0
ファイル: app.py プロジェクト: jackyhocs/htn-api
    def delete(self, _id):
        '''
        Takes in an int as an id and deletes the user with the id
        :param _id:
        :return:

        :param _id:
        :return:
        Failure - Error codes: 500, 404
        Success - No Content: 204
        '''
        user_model = UserModel()
        try:
            user_model.delete_user(_id)
        except DataError:
            return {
                "message": "User with ID {} does not exist".format(_id)
            }, 404
        except (DatabaseError, IntegrityError):
            return {"message": "Internal Server Error"}, 500
        except Exception as e:
            return {"message": "Exception : {}".format(str(e))}, 500

        return {}, 204
コード例 #24
0
 def create_new(self, *args, **kwargs):
     """Creates an empty user data object"""
     self.ensure_mongo_conection()
     return UserModel(*args, **kwargs)
コード例 #25
0
ファイル: server.py プロジェクト: SinghHrmn/ecommerce-flask
def gconnect():
    # Validate state token
    if request.args.get('state') != login_session['state']:
        response = make_response(json.dumps('Invalid state parameter.'), 401)
        response.headers['Content-Type'] = 'application/json'
        return response
    # Obtain authorization code
    code = request.data

    try:
        # Upgrade the authorization code into a credentials object
        oauth_flow = flow_from_clientsecrets('client_secrets.json', scope='')
        oauth_flow.redirect_uri = 'postmessage'
        credentials = oauth_flow.step2_exchange(code)
    except FlowExchangeError:
        response = make_response(
            json.dumps('Failed to upgrade the authorization code.'), 401)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Check that the access token is valid.
    access_token = credentials.access_token
    url = ('https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=%s' %
           access_token)
    h = httplib2.Http()
    result = json.loads(h.request(url, 'GET')[1])
    # If there was an error in the access token info, abort.
    if result.get('error') is not None:
        response = make_response(json.dumps(result.get('error')), 500)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Verify that the access token is used for the intended user.
    gplus_id = credentials.id_token['sub']
    if result['user_id'] != gplus_id:
        response = make_response(
            json.dumps("Token's user ID doesn't match given user ID."), 401)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Verify that the access token is valid for this app.
    if result['issued_to'] != CLIENT_ID:
        response = make_response(
            json.dumps("Token's client ID does not match app's."), 401)
        print "Token's client ID does not match app's."
        response.headers['Content-Type'] = 'application/json'
        return response

    stored_access_token = login_session.get('access_token')
    stored_gplus_id = login_session.get('gplus_id')
    if stored_access_token is not None and gplus_id == stored_gplus_id:
        response = make_response(
            json.dumps('Current user is already connected.'), 200)
        response.headers['Content-Type'] = 'application/json'
        return response

    # Store the access token in the session for later use.
    login_session['access_token'] = credentials.access_token
    login_session['gplus_id'] = gplus_id

    # Get user info
    userinfo_url = "https://www.googleapis.com/oauth2/v1/userinfo"
    params = {'access_token': credentials.access_token, 'alt': 'json'}
    answer = requests.get(userinfo_url, params=params)

    data = answer.json()

    login_session['username'] = data['name']
    login_session['picture'] = data['picture']
    login_session['email'] = data['email']

    user_id = UserModel().getUserID(login_session['email'])
    if not user_id:
        user_id = UserModel().createUser(login_session)
    login_session['user_id'] = user_id

    output = ''
    output += '<h1>Welcome, '
    output += login_session['username']
    output += '!</h1>'
    output += '<img src="'
    output += login_session['picture']
    output += ''' " style =
                    "width: 300px;
                    height: 300px;
                    border-radius: 150px;
                    -webkit-border-radius: 150px;
                    -moz-border-radius: 150px;"> '''
    flash("you are now logged in as %s" % login_session['username'])
    print "done!"
    return output
コード例 #26
0
ファイル: solution_pa3.py プロジェクト: merico34/recsys-001
sys.path.append("../../../recsys")

from score import user_based_knn, cosine
from dataset import DataIO
from model import UserModel

ratings_file = '../data/ratings.csv'
items_file = '../data/movie-titles.csv'
NN = 30
answer_file = 'part_1.csv'

# part 1

data = DataIO()
data.load(ratings_file, items_file=items_file)
model = UserModel(normalize=True)
model.build(data)

inputs = [(4169, 161), (4169, 36955), (4169, 453), (4169, 857), (4169, 238),
          (5399, 1891), (5399, 14), (5399, 187), (5399, 602), (5399, 629),
          (3613, 329), (3613, 604), (3613, 134), (3613, 1637), (3613, 278),
          (1873, 786), (1873, 2502), (1873, 550), (1873, 1894), (1873, 1422),
          (4914, 268), (4914, 36658), (4914, 786), (4914, 161), (4914, 854)]

file = open(answer_file, 'w')
file.write('\n'.join([
    '%d,%d,%.4f,%s' %
    (u, i,
     user_based_knn(model,
                    NN, [data.new_user_idx(u)], [data.new_item_idx(i)],
                    cosine,
コード例 #27
0
 def __init__(self):
     self.model = UserModel()
コード例 #28
0
import os
from firebase_admin import credentials, firestore, initialize_app
import requests
import json
from model import UserModel, UserResponse

userModel = UserModel()
userResponse = UserResponse()

cred = credentials.Certificate('firebaseKey.json')
initialize_app(cred)
db = firestore.client()
users_ref = db.collection('users')


def delete(request):

    request_json = request.get_json()
    id = request_json['phone']

    userResponse.userModel = {}

    user = users_ref.document(id).get().to_dict()

    if (user != None):
        users_ref.document(id).delete()
        userResponse.result = {
            "code": "1",
            "title": "退出完成",
        }
    else:
コード例 #29
0
import os
from firebase_admin import credentials, firestore, initialize_app
import requests
import json
from model import UserModel, ResponseModel

# data model
user = UserModel()
response = ResponseModel()

# firebase
cred = credentials.Certificate("firebase-key.json")
initialize_app(cred)
db = firestore.client()

# firebase data collection
users_ref = db.collection("users")


def check(request):
    # 获取参数
    request_json = request.get_json()
    request_args = request.args

    # lineId
    if request_json and "lineId" in request_json:
        lineId = request_json["lineId"]
    elif request_args and "lineId" in request_args:
        lineId = request_args["lineId"]
    else:
        lineId = None
コード例 #30
0
 def test_update(self):
     self.assertLessEqual(
         self.user_bl.sign_up(UserModel("law", "123456", Role.USER)), 10)