コード例 #1
0
ファイル: protobuf.py プロジェクト: Tiendil/the-tale
def from_log_record(log_record):
    return storage_pb2.LogRecord(id=log_record.id,
                                 transaction=log_record.transaction.hex,
                                 item_id=log_record.item_id.hex,
                                 type=log_record.type.value,
                                 data=s11n.to_json(log_record.data),
                                 created_at=time.mktime(log_record.created_at.timetuple()) + log_record.created_at.microsecond / 1000000)
コード例 #2
0
ファイル: test_handlers.py プロジェクト: al-arz/the-tale
    async def test_restrictions_saved(self):
        await helpers.call_change_balance(account_id=666,
                                          currency=1,
                                          amount=1000)
        await helpers.call_change_balance(account_id=667,
                                          currency=1,
                                          amount=1000)

        restrictions_data = {
            'hard_minimum': 0,
            'hard_maximum': 10000,
            'soft_minimum': 7,
            'soft_maximum': 7000
        }

        restrictions = s11n.to_json(restrictions_data)

        request = await self.client.post(
            '/transactions/start',
            data=bank_pb2.StartTransactionRequest(
                operations=TEST_OPERATIONS,
                lifetime=0,
                restrictions=restrictions).SerializeToString())

        answer = await self.check_success(request,
                                          bank_pb2.StartTransactionResponse)

        results = await db.sql('SELECT * FROM transactions WHERE id=%(id)s',
                               {'id': answer.transaction_id})

        self.assertEqual(results[0]['data']['restrictions'], restrictions_data)
コード例 #3
0
ファイル: helpers.py プロジェクト: al-arz/the-tale
def create_effect(uid, id=None):
    return objects.Effect(id=id,
                          attribute=random.randint(1, 100),
                          entity=random.randint(1, 100),
                          value='some.value.{}'.format(uid),
                          caption='effect caption {}'.format(uid),
                          data=s11n.to_json({'expired_at': 666, 'uid': uid}))
コード例 #4
0
ファイル: protobuf.py プロジェクト: warkb/the-tale
def from_event(event):
    return events_log_pb2.Event(
        id=event.id,
        data=s11n.to_json(event.data),
        tags=tuple(event.tags),
        turn=event.created_at_turn,
        time=time.mktime(event.created_at.timetuple()) +
        event.created_at.microsecond / 1000000)
コード例 #5
0
    async def test_no_signature(self):
        request_data = await self.user_validateion_request()

        response = await self.client.post('/xsolla-hook',
                                          data=s11n.to_json(request_data))

        await self.check_xsolla_error(response, 'INVALID_SIGNATURE',
                                      'xsolla.hook.signature_has_not_found')
コード例 #6
0
    async def request_hook(self, request_data):
        content = s11n.to_json(request_data)

        response = await self.client.post('/xsolla-hook',
                                          data=content,
                                          headers=self.headers(content))

        return response
コード例 #7
0
def from_log_record(log_record):
    return storage_pb2.LogRecord(
        id=log_record.id,
        transaction=log_record.transaction.hex,
        item_id=log_record.item_id.hex,
        type=log_record.type.value,
        data=s11n.to_json(log_record.data),
        created_at=time.mktime(log_record.created_at.timetuple()) +
        log_record.created_at.microsecond / 1000000)
コード例 #8
0
ファイル: protobuf.py プロジェクト: NickoAilus/the-tale
def from_report(report):
    return data_protector_pb2.Report(
        state=report.state.value,
        data=s11n.to_json(report.data['report'])
        if report.data is not None else '[]',
        completed_at=utils.postgres_time_to_timestamp(report.completed_at)
        if report.completed_at else None,
        expire_at=utils.postgres_time_to_timestamp(report.expire_at)
        if report.expire_at else None)
コード例 #9
0
    async def test_unexpected_signature(self):
        request_data = await self.user_validateion_request()

        response = await self.client.post(
            '/xsolla-hook',
            data=s11n.to_json(request_data),
            headers={'Authorization': 'Signature: blablabla'})

        await self.check_xsolla_error(response, 'INVALID_SIGNATURE',
                                      'xsolla.hook.unexpected_signature')
コード例 #10
0
async def data_protection_collect_data(message, config, **kwargs):

    if config['custom']['data_protector']['secret'] != message.secret:
        raise tt_exceptions.ApiError(code='properties.data_protection_collect_data.wrong_secret',
                                     message='wrong secret code')

    report = await operations.get_data_report(object_id=int(message.account_id))

    return data_protector_pb2.PluginReportResponse(result=data_protector_pb2.PluginReportResponse.ResultType.SUCCESS,
                                                   data=s11n.to_json(report))
コード例 #11
0
ファイル: handlers.py プロジェクト: NickoAilus/the-tale
def xsolla_error(code, message, details):

    status_code = 400

    if code == 'api.unknown_error':
        details['code'] = code
        status_code = 500

    data = {'error': {'code': code, 'message': message, 'details': details}}

    return web.Response(content_type='application/json',
                        status=status_code,
                        body=s11n.to_json(data))
コード例 #12
0
async def data_protection_collect_data(message, config, **kwargs):

    if config['custom']['data_protector']['secret'] != message.secret:
        raise tt_exceptions.ApiError(
            code='discord.data_protection_collect_data.wrong_secret',
            message='wrong secret code')

    account_info = await operations.get_account_info_by_game_id(
        int(message.account_id), create_if_not_exists=False)

    report = await operations.get_data_report(account_info=account_info)

    return data_protector_pb2.PluginReportResponse(
        result=data_protector_pb2.PluginReportResponse.ResultType.SUCCESS,
        data=s11n.to_json(report))
コード例 #13
0
def from_item(item):
    return storage_pb2.Item(id=item.id.hex,
                            owner_id=item.owner_id,
                            storage_id=item.storage_id,
                            data=s11n.to_json(item.data))
コード例 #14
0
ファイル: protobuf.py プロジェクト: Tiendil/the-tale
def from_item(item):
    return storage_pb2.Item(id=item.id.hex,
                            owner_id=item.owner_id,
                            storage_id=item.storage_id,
                            data=s11n.to_json(item.data))
コード例 #15
0
ファイル: handlers.py プロジェクト: NickoAilus/the-tale
def xsolla_ok(message):
    return web.Response(content_type='application/json',
                        status=204,
                        body=s11n.to_json(message))
コード例 #16
0
ファイル: protobuf.py プロジェクト: Tiendil/the-tale
def from_event(event):
    return events_log_pb2.Event(id=event.id,
                                data=s11n.to_json(event.data),
                                tags=tuple(event.tags),
                                turn=event.created_at_turn,
                                time=time.mktime(event.created_at.timetuple())+event.created_at.microsecond / 1000000)