Пример #1
0
        public async Task <ResGetServiceRecord> GetServiceRecord(ReqGetServiceRecord req)
        {
            var escapedGt     = req.Gamertag.ToSlug();
            var needsQueueing = await CacheMetaHelpers.NeedsQueueing(_dbClient, $"sr-{escapedGt}");

            if (needsQueueing)
            {
                await _dbClient.SetCacheMeta($"sr-{escapedGt}", "in_progress");

                TaskExt.FireAndForget(() => _sqsClient.SendMessageAsync(new QueueEvent
                {
                    Type    = QueueEventTypes.CacheServiceRecord,
                    Payload = new ServiceRecordPayload {
                        Gamertag = req.Gamertag
                    },
                }));

                throw new BaeException("queued_for_caching");
            }

            // TODO(0xdeafcafe): Clean this shit up 🤮
            var sr = await _dbClient.GetServiceRecord(escapedGt);

            var p1 = Mapper.Map <ServiceRecordResponse>(sr);
            var p2 = Mapper.Map <ResGetServiceRecord>(p1);

            p2.CacheInfo = new CacheInfo(sr.CreatedAt);

            return(p2);
        }
Пример #2
0
 public async Task <ResGetServiceRecord> GetServiceRecord(ReqGetServiceRecord req)
 {
     return(await _app.GetServiceRecord(req));
 }
Пример #3
0
 public async Task <ResGetServiceRecord> GetServiceRecord(ReqGetServiceRecord req)
 {
     return(await app.GetServiceRecord(req.Identity));
 }