예제 #1
0
 def get_list(self):
     room = Room()
     rooms = room.select().dicts().execute()
     data = []
     for i in rooms:
         data.append(i)
     return {"success": True, "rooms": data}
예제 #2
0
def fake_room():
    data = [{
        "name": "1",
        "location": "5861 Cody Trail",
        "max_student": 100
    }, {
        "name": "2",
        "location": "0 Sherman Center",
        "max_student": 2
    }, {
        "name": "3",
        "location": "98527 Thierer Crossing",
        "max_student": 100
    }, {
        "name": "4",
        "location": "46586 Forest Dale Hill",
        "max_student": 100
    }, {
        "name": "5",
        "location": "38 Butternut Alley",
        "max_student": 100
    }, {
        "name": "Phòng đặc biệt",
        "location": "5129 Talmadge Parkway",
        "max_student": 100
    }]
    with db.atomic():
        for data_dict in data:
            Room.create(**data_dict)
예제 #3
0
    def test_initialize_room_部屋を初期化する(self, sut, getter, putter):
        putter({
            "room_id": "abcdef",
            "mem_1000000001": {
                "nickname": "ななし1",
                "point": 5
            },
            "mem_1000000002": {
                "nickname": "ななし2",
                "point": 1
            },
            "mem_1000000003": {
                "nickname": "ななし3",
                "point": 3
            },
            "opened": True,
        })
        room = Room(room_id="abcdef",
                    members=[
                        Member("1000000001", "ななし1", point=None),
                        Member("1000000002", "ななし2", point=None),
                        Member("1000000003", "ななし3", point=None),
                    ])
        now = Arrow(2020, 11, 22)

        sut.initialize_room(room, now)

        actual = getter("abcdef")

        assert actual["opened"] is False
        assert actual["mem_1000000001"] == {"nickname": "ななし1", "point": None}
        assert actual["mem_1000000002"] == {"nickname": "ななし2", "point": None}
        assert actual["mem_1000000003"] == {"nickname": "ななし3", "point": None}
        assert actual["ttl"] == 1606089600
예제 #4
0
    def test_act_member_ニックネーム変更(self, sut, getter, putter):
        putter({
            "room_id": "abcdef",
            "mem_2000000001": {
                "nickname": "test_name1",
                "point": None
            },
            "opened": False,
        })
        room = Room(room_id="abcdef")
        member = Member(member_id="2000000001",
                        nickname="test_name2",
                        point=None)

        sut.act_member(member, room)

        actual = getter("abcdef")
        assert actual == {
            "room_id": "abcdef",
            "mem_2000000001": {
                "nickname": "test_name2",
                "point": None
            },
            "opened": False,
        }
예제 #5
0
    def test_initialize_room_部屋を建てる(self, sut, getter):
        room = Room(room_id="abcdef")
        now = Arrow(2020, 11, 22)

        sut.initialize_room(room, now)

        actual = getter("abcdef")
        assert actual == {
            "room_id": "abcdef",
            "opened": False,
            "ttl": 1606089600,
        }
예제 #6
0
    def query_room(self, room_id: str) -> Optional[Room]:
        """
        指定したidの部屋が存在すれば返す
        :param room_id:
        :return: 指定したidの部屋が存在すれば返す
        """
        res = self.table.get_item(Key={"room_id": room_id}).get("Item")
        if not res:
            return None

        # 内包表記ver.
        members = [
            Member(
                member_id=key[4:],
                nickname=value["nickname"],
                point=value.get("point"),
            ) for key, value in res.items() if key.startswith("mem_")
        ]

        return Room(room_id=res["room_id"],
                    opened=res["opened"],
                    members=members)
예제 #7
0
    def test_act_member_部屋に参加する(self, sut, getter, putter):
        putter({
            "room_id": "abcdef",
            "opened": False,
        })
        room = Room(room_id="abcdef")
        member = Member(member_id="2000000001",
                        nickname="test_name1",
                        point=None)

        sut.act_member(member, room)

        actual = getter("abcdef")
        assert actual["room_id"] == "abcdef"
        assert actual["mem_2000000001"] == {
            "nickname": "test_name1",
            "point": None
        }
        assert actual["mem_2000000001"] == {
            "nickname": "test_name1",
            "point": None
        }
        assert actual["opened"] is False
예제 #8
0
def create_new_room(event, context) -> Dict[str, str]:
    now = Arrow.now()
    while True:
        room_id = utils.get_random_string(ROOM_ID_LENGTH)
        if not repo.query_room(room_id):
            break
    room = repo.initialize_room(Room(room_id), now)
    # try:
    #     room = repo.initialize_room(Room(room_id), now)
    # except RuntimeError as e:
    #     print("サーバ側のエラーです。", e)
    #     res["errorCode"] = ""
    # except ConnectionError as e:
    #     print()
    body = str(room)
    return {
        'statusCode': 200,
        'headers': {
            'Location': '{}'.format()
        },
        'body': json.dumps(body),
        'isBase64Encoded': False
    }