Ejemplo n.º 1
0
    def post(self):
        data = request.get_json()
        name_role = data['name']

        if name_role:
            mongo.db.role.insert_one({'nameRole': name_role})
            return response('Role added successfully', 200)
        else:
            return response('Please fill in all information', 400)
 def put(self, user_id):
     ret = mongo.db.user.find_one_and_update(
         {"_id": ObjectId(user_id)}, {"$set": {
             'firstTimeUse': False
         }},
         return_document=ReturnDocument.BEFORE)
     if ret is None:
         return response('Error while updating firstTimeUse', 404)
     else:
         return response('Used updated successfully', 200)
Ejemplo n.º 3
0
 def post(self):
     data = request.get_json()
     movie_id = data['movieId']
     user_id = data['userId']
     if movie_id and user_id:
         mongo.db.watchlist.insert_one({
             'movieId': movie_id,
             'userId': user_id
         })
         return response('Watchlist added successfully', 200)
     else:
         return response('Please fill in all information', 400)
Ejemplo n.º 4
0
def verify_token(request):
    print(request.headers)
    token = request.headers.get('Token', None)
    print(token)
    if token == None:
        print('INSIDE')
        # raise Error
        return response('No token, authorization denied', 401)
    try:
        decoded = jwt.decode(token, SECRET_KEY)
    except jwt.ExpiredSignatureError:
        return response('Signature expired. Please log in again.', 401)
    except jwt.InvalidTokenError:
        return response('Invalid token. Please log in again.', 401)
    except Exception as e:
        print(e)
Ejemplo n.º 5
0
    def get(self):

        page = request.args.get('page', 1, type=int)

        articles = Article.query.paginate(page, app.config['POSTS_PER_PAGE'],
                                          False)

        data_all = []

        for article in articles.items:
            result = {
                'id': article.id,
                'title': article.title,
                'content': article.content
            }
            data_all.append(result)

        result = {
            'pagination': {
                'current': articles.page,
                'total_pages': articles.pages,
                'total_items': articles.total,
            },
            'articles': data_all
        }
        return response(result)
Ejemplo n.º 6
0
    def post(self):

        data = request.form

        form = ArticleForm(data)
        if form.validate():
            new_article = Article(title=data['title'],
                                  content=data['content'],
                                  post_date=data['post_date'])

            db.session.add(new_article)
            db.session.commit()

            return response({'id': new_article.id})
        else:
            return response(form.get_error_messages(), 400)
Ejemplo n.º 7
0
def profile(submit, token, project, commit, tag):
	for badpath in BADPATH:
		if badpath in token or badpath in project or badpath in commit:
			return 'System Error!'

	info = None
	infopath = os.path.join(config.USER_INFO, '%s.yml' % token)
	if os.path.isfile(infopath):
		with codecs.open(infopath, 'r', 'utf-8') as f:
			info = yaml.load(f, Loader = yaml.RoundTripLoader)
	if not info: return 'Token (%s) Error!' % token

	error = _check(info, project, commit)
	if not error:
		dirpath = os.path.join(config.PROFILE_PATH, info['user'], project, tag, commit)
		if not os.path.isdir(dirpath): os.makedirs(dirpath)
		for i in range(config.MAX_COUNT):
			filepath = os.path.join(dirpath, '%d.prof' % i)
			if not os.path.isfile(filepath):
				with open(filepath, 'wb') as f:
					for chunk in submit:
						f.write(chunk)
				Runner.profile(TASK_RETRY, TASK_INTERVAL, info['user'], project, tag, commit)
				break

	return response(error = error)
Ejemplo n.º 8
0
    def post(self):
        data = request.get_json()
        password = data['password']
        email = data['email']
        user = mongo.db.user.find_one({'email': email})
        if user is None:
            return response("Incorrect username or password", 404)

        new_user = json.loads(json_util.dumps(user))
        # return(new_user['username'])
        if check_password_hash(new_user['hashed_password'], password):
            encoded_jwt = jwt.encode(
                {'username': new_user['username'], 'id': new_user['_id']['$oid'], 'email': new_user['email'], 'fullname': new_user['fullname'],  'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=60)}, SECRET_KEY, algorithm='HS256')
            decoded_token = encoded_jwt.decode('UTF-8')
            return response(decoded_token, 200)
        else:
            return response('Incorrect username or password', 400)
Ejemplo n.º 9
0
 def get(self, role_id):
     role = mongo.db.role.find_one({"_id": ObjectId(role_id)})
     if role is None:
         return response('', 404)
     else:
         new_role = json.loads(json_util.dumps(role))
         new_role['_id'] = new_role['_id']["$oid"]
         return new_role, 200
Ejemplo n.º 10
0
def user_main(cookies):
    session = cookies.get('session')
    session = session and session.value
    error, account = SESSION.get(session)
    account = github.Account(account)
    assert account, 'Only support github account now!!!'

    return response(**account.user)
Ejemplo n.º 11
0
 def get(self, user_id):
     user = mongo.db.user.find_one({"_id": ObjectId(user_id)},
                                   {"hashed_password": 0})
     if user is None:
         return response('', 404)
     else:
         new_user = json.loads(json_util.dumps(user))
         new_user['_id'] = new_user['_id']["$oid"]
         return new_user, 200
Ejemplo n.º 12
0
    def put(self, user_id):
        data = request.get_json()
        username = data['username']
        email = data['email']
        fullname = data['fullname']
        role = data['role']

        if mongo.db.user.count_documents(
            {
                'email': email,
                '_id': {
                    '$ne': ObjectId(user_id)
                }
            }, limit=1) != 0:
            return response('Email is already registered', 400)
        if mongo.db.user.count_documents(
            {
                'username': username,
                '_id': {
                    '$ne': ObjectId(user_id)
                }
            }, limit=1) != 0:
            return response('Username is already registered', 400)

        if username and email and fullname:
            ret = mongo.db.user.find_one_and_update(
                {"_id": ObjectId(user_id)}, {
                    "$set": {
                        'username': username,
                        'email': email,
                        'fullname': fullname,
                        'role': role
                    }
                },
                return_document=ReturnDocument.BEFORE)
            if ret is None:
                return response('', 404)
            else:
                return response('Used updated successfully', 200)
        else:
            return response('Please fill in all information', 400)
Ejemplo n.º 13
0
    def get(self, article_id):

        article = Article.query.filter_by(id=article_id).first()

        if not article:
            return False, 404

        result = {
            'id': article.id,
            'title': article.title,
            'content': article.content
        }
        return response(result)
Ejemplo n.º 14
0
 def post(self):
     data = request.get_json()
     username = data['username']
     email = data['email']
     password = data['password']
     verifyPassword = data['verifyPassword']
     fullname = data['fullname']
     role = data['role']
     one_user = mongo.db.user.find_one()
     if one_user is None:
         dataframe = pd.read_csv('ratings.csv')
         row = dataframe.nlargest(1, 'userId')
         largest_user_id = row['userId'].values[0]
         largest_user_id = largest_user_id + 1
         user_id = largest_user_id.item()
     else:
         last_user = mongo.db.user.find().limit(1).sort([("$natural", -1)])
         for x in last_user:
             user_id = x['userId'] + 1
         # user_id = last_user['userId'] + 1
     if not username or not email or not password or not role or not verifyPassword or not fullname:
         return response('Please fill in all information', 400)
     if mongo.db.user.count_documents({'email': email}, limit=1) != 0:
         return response('Email is already registered', 400)
     if mongo.db.user.count_documents({'username': username}, limit=1) != 0:
         return response('Username is already registered', 400)
     if password != verifyPassword:
         return response("Password doesn't match!", 400)
     hashed_password = generate_password_hash(password, method='sha256')
     mongo.db.user.insert_one({
         'username': username,
         'email': email,
         'fullname': fullname,
         'userId': user_id,
         'hashed_password': hashed_password,
         'role': role,
         'firstTimeUse': True
     })
     return response('Used created successfully', 200)
 def post(self):
     data = request.get_json()
     mean_rating = data['rating']
     # rating param = -2 represents user-clicking point, not user rating
     if mean_rating == -2:
         ratings = pd.read_csv('ratings.csv')
         ratings = ratings[ratings.userId == data['userid']]
         # calculate mean rating of current user
         mean_rating = ratings["rating"].mean()
     with open('ratings.csv', 'a', newline='') as f:
         thewriter = csv.writer(f)
         ratings = pd.read_csv("ratings.csv")
         ratings = ratings[ratings.movieId ==
                           data["id"]][ratings.userId == 592]
         ratings = ratings.nlargest(1, ['timestamp'])
         if not ratings.empty and data['rating'] == -2:
             return response('Failed to add rating', 200)
         if not ratings.empty and ratings["rating"].values[0] == mean_rating:
             return response('Dupplicate ratings', 200)
         thewriter.writerow(['592', data["id"], mean_rating,
                             datetime.timestamp(datetime.now())])
         return response('Added rating successfully', 200)
     return response('Failed to add rating', 500)
    def put(self, user_id):
        data = request.get_json()
        password = data['password']
        verifyPassword = data['verifyPassword']

        if not password or not verifyPassword:
            return response('Please fill in all information', 400)

        if password != verifyPassword:
            return response("Password doesn't match!", 400)

        hashed_password = generate_password_hash(password, method='sha256')
        ret = mongo.db.user.find_one_and_update(
            {"_id": ObjectId(user_id)},
            {"$set": {
                'hashed_password': hashed_password
            }},
            return_document=ReturnDocument.BEFORE)
        print(ret)
        if ret is None:
            return response('12321213', 404)
        else:
            return response('Password updated successfully', 200)
Ejemplo n.º 17
0
def projectInfo(cookies):
	info = {}
	for repo in repos:
		repo_url = 'https://api.github.com/repos/%s'%repo #确定url
		repoInfo = readURL('Repositories/reposInfo/%s'%(repo),repo_url )#访问url得到数据
		repoInfo = repoInfo and json.loads(repoInfo)#将数据类型转换
		#提取想要的信息保存在info中
		info[repo] = {
			"stargazers_count":repoInfo['stargazers_count'],
			'watchers_count':repoInfo['watchers_count'],
			'created_at':repoInfo['created_at'],
			'size':repoInfo['size'],
			'forks_count':repoInfo['forks_count'],
			'open_issues':repoInfo['open_issues']

		}
	#将info返回给页面
	return response(projectInfo=info)
Ejemplo n.º 18
0
 def delete(self, role_id):
     ret = mongo.db.role.find_one_and_delete({"_id": ObjectId(role_id)})
     if ret is None:
         return response('', 404)
     else:
         return response('Role deleted successfully', 200)
Ejemplo n.º 19
0
def projectPath():
	JMH = P.getJMH()
	#将info返回给页面
	return response(projectPa=JMH)
Ejemplo n.º 20
0
def projectCommits():
	commits = Co.getCommits()
	#将info返回给页面
	return response(projectCo=commits)
Ejemplo n.º 21
0
def projectBranches():
	bran = Branch.getBranches()
	#将info返回给页面
	return response(projectBran=bran)
Ejemplo n.º 22
0
def projectInfo():
	info = Info.getInfo()
	#将info返回给页面
	return response(projectInfo=info)
Ejemplo n.º 23
0
 def delete(self, role_id):
     ret = mongo.db.watchlist.remove({"userId": str(user_id)})
     if ret is None:
         return response('', 404)
     else:
         return response('Role deleted successfully', 200)
Ejemplo n.º 24
0
 def delete(self):
     mongo.db.user.remove({})
     return response("Deleted all users!", 200)
Ejemplo n.º 25
0
 def delete(self, user_id):
     ret = mongo.db.user.find_one_and_delete({"_id": ObjectId(user_id)})
     if ret is None:
         return response('', 404)
     else:
         return response('Deleted successfully', 200)