コード例 #1
0
ファイル: test_json_check.py プロジェクト: xloc/minimery
 def test_exception(self):
     try:
         check_fields(dict(a=1, b=2), 'c')
     except FieldNotFoundError as e:
         self.assertEqual(
             str(e),
             'required parameters not complete\nNeed: c\nGot : a, b')
     else:
         self.fail('FieldNotFoundError not raised')
コード例 #2
0
def get_overall_familiarity():
    word_id, = json_check.check_fields(request.json, 'word_id')
    reviews = Word.get_by_id(word_id).reviews.order_by(
        Review.timestamp.desc()).limit(10).all()

    return jsonify(overall_familiarity=sum([r.familiarity
                                            for r in reviews]) / len(reviews))
コード例 #3
0
def set_learning():
    word_ids, = json_check.check_fields(request.json, 'word_ids')

    for id in word_ids:
        wi = WordInfo.get(word_id=id)
        wi.is_learning = True
        db.session.add(wi)
    db.session.commit()

    return jsonify(status='ok')
コード例 #4
0
ファイル: test_json_check.py プロジェクト: xloc/minimery
    def test_split(self):
        self.assertEqual(check_fields(dict(a=1, b=2), 'a'), [1])
        self.assertEqual(check_fields(dict(a=1, b=2), 'a,'), [1])

        self.assertEqual(check_fields(dict(a=1, b=2), 'a, b'), [1, 2])
        self.assertEqual(check_fields(dict(a=1, b=2), 'a b'), [1, 2])
        self.assertEqual(check_fields(dict(a=1, b=2), 'a,  b'), [1, 2])
        self.assertEqual(check_fields(dict(a=1, b=2), 'a,  b'), [1, 2])
        self.assertEqual(check_fields(dict(a=1, b=2), 'a,  b, '), [1, 2])
コード例 #5
0
def get_learning_words():
    d = request.json
    limit, = json_check.check_fields(request.json, 'limit')
    offset = d.get('offset', 0)

    q = Word.query.join(WordInfo).filter(WordInfo.is_learning)
    q = q.order_by(WordInfo.overall_familiarity.desc())

    words = q.limit(limit).offset(offset).all()
    words_json = [w.to_json() for w in words]
    return jsonify({'status': 'ok', 'data': words_json})
コード例 #6
0
def get_words_by_ids():
    ids, = json_check.check_fields(request.json, 'ids')

    words_json = []
    for id in ids:
        word = Word.query.filter_by(id=id).one()
        j = word.to_json()
        word_info = WordInfo.get(id)
        j.update(word_info.to_json())
        words_json.append(j)

    return jsonify(status='ok', data=words_json)
コード例 #7
0
def get_reviews():
    word_id, = json_check.check_fields(request.json, 'word_id')
    reviews = Review.query.filter_by(word_id=word_id).all()
    return jsonify(data=[r.to_json() for r in reviews])
コード例 #8
0
def add_review():
    word_id, familiarity, timestamp = \
        json_check.check_fields(request.json, 'word_id, familiarity, timestamp')

    learning.add_review(word_id, familiarity, datetime_from_string(timestamp))
    return jsonify({'status': 'ok'})