Ejemplo n.º 1
0
 def get(self):
     user = AdminUserModel.objects(userId=get_jwt_identity()).first()
     return uni_json([{
         "game": problem.game.id,
         "problemId": problem.problemId,
         "content": problem.content,
         "answer": problem.answer,
         "choices": problem.choices
     } for problem in ProblemModel.objects(game=user['game'])])
Ejemplo n.º 2
0
    def get(self):
        user = AdminUserModel.objects(userId=get_jwt_identity()).first()
        game = user.game
        booth_list = BoothModel.objects(game=game)

        return uni_json({
            'booths': [{
                'boothName': booth.boothName,
                'ownTeam': booth.ownTeam.teamColor
            } for booth in booth_list]
        })
Ejemplo n.º 3
0
    def post(self):
        payload = request.json
        ID_ = payload['userId']
        PW_ = payload['password']
        start_ = '2018-10-10 10:10:10'   # '%Y-%m-%d %H:%M:%S' 형식
        end_ = '2018-12-25 10:10:10'       # '%Y-%m-%d %H:%M:%S' 형식

        if AdminUserModel.objects(userId=ID_).first():
            return {"status": "The ID already exists."}, 409

        game = GameModel(
            gameKey=create_game_key(),
            start_time=datetime.strptime(start_, '%Y-%m-%d %H:%M:%S'),
            end_time=datetime.strptime(end_, '%Y-%m-%d %H:%M:%S'),
            teamCount=4
        ).save()
        AdminUserModel(game=game.id, userId=ID_, password=PW_).save()
        for i in range(0, 5):
            create_team(game.id, teamId=i)

        return Response('회원가입 성공', 201)
Ejemplo n.º 4
0
    def post(self):
        payload = request.json
        userID_ = payload['userId']
        PW_ = payload['password']

        if AdminUserModel.objects(userId=userID_, password=PW_):
            return {
                'access_token': create_access_token(userID_),
                'refresh_token': create_refresh_token(userID_)
            }, 201
        else:
            return abort(401)
Ejemplo n.º 5
0
 def get(self):
     user = AdminUserModel.objects(userId=get_jwt_identity()).first()
     return uni_json([
         {
             "bootName":
             booth.boothName,
             "ownTeam":
             TeamModel.objects(game=user.game,
                               teamId=booth.ownTeam.teamId).first().teamId
             # "ownTeam": booth.ownTeam.id
         } for booth in BoothModel.objects(game=user['game'])
     ])
Ejemplo n.º 6
0
    def put(self):
        payload = request.json
        start_ = datetime.strptime(payload['start'], '%Y-%m-%d %H:%M:%S')
        end_ = datetime.strptime(payload['end'], '%Y-%m-%d %H:%M:%S')

        if start_ < datetime.now() or end_ < datetime.now():
            return Response('현재보다 오래된 시간을 감지했습니다. 다시 요청하세요.', 406)

        user = AdminUserModel.objects(userId=get_jwt_identity()).first()

        GameModel(gameKey=user['game'].id,
                  start_time=start_,
                  end_time=end_,
                  teamCount=4).save()

        return {"status": "success"}, 201
Ejemplo n.º 7
0
    def post(self):
        edits_ = request.json['edits']
        user_self = AdminUserModel.objects(
            userId=get_jwt_identity()).first()['game']

        for r in edits_:
            if ProblemModel.objects(content=r['content']).first():
                return {'exist': r['content']}, 409

            ProblemModel(game=user_self,
                         problemId=create_problem_key(),
                         content=r['content'],
                         answer=r['answer'],
                         choices=r['choices']).save()

        return {"status": "Successfully inserted quiz information."}, 201
Ejemplo n.º 8
0
    def post(self):
        edits_ = request.json['edits']  # boothName
        user = AdminUserModel.objects(userId=get_jwt_identity()).first()
        game = user['game'].id

        if not user:
            abort(401)
        else:
            for array in edits_:
                BoothModel(game=game,
                           boothName=array['boothName'],
                           ownTeam=TeamModel.objects(teamId=0).first()).save()

            return {
                "status": "Successfully inserted problem information."
            }, 201
Ejemplo n.º 9
0
    def get(self):
        ret = []
        user = AdminUserModel.objects(userId=get_jwt_identity()).first()

        total_ = len(BoothModel.objects(
            game=user['game']))  # user의 현재 게임 내에 있는 총 부스의 개수
        for team in TeamModel.objects(game=user['game']):
            # temp 는 해당 team 이 점령한 부스의 개수를 지칭
            temp = len(BoothModel.objects(ownTeam=team))
            ret.append({
                "teamId": team.teamColor,
                "ownCount": temp,
                "percent": temp / total_ * 100
            })

        return ret, 201  # for 문이 끝나고 ret 반환
Ejemplo n.º 10
0
    def get(self):
        factory = qrcode.image.svg.SvgImage
        game_ = AdminUserModel.objects(userId=get_jwt_identity()).first().game

        directory = 'static/qr/' + str(game_.gameKey)
        if os.path.exists(directory):
            shutil.rmtree(directory)
        os.makedirs(directory)
        directory += '\\'

        zip = zipfile.ZipFile(directory + 'qr.zip', 'w')
        for booth in BoothModel.objects(game=game_):
            file_name = directory + booth.boothName + '.svg'
            qrcode.make(booth.boothName, image_factory=factory).save(file_name)

            zip.write(file_name,
                      booth.boothName + '.svg',
                      compress_type=zipfile.ZIP_DEFLATED)
        zip.close()

        return send_file(directory + 'qr.zip', mimetype='application/zip')
 def get(self):
     user_self = AdminUserModel.objects(userId=get_jwt_identity()).first()
     if user_self:
         return {"serial_number": user_self['game'].id}