mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
[store] categorize store services
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public class BirdService : SomeRandomApiAbstractService
|
||||
{
|
||||
public BirdService() : base("bird", "Птица", 40, 165)
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public class FoxService : SomeRandomApiAbstractService
|
||||
{
|
||||
public FoxService() : base("fox", "Лисица", 40, 170)
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public class KangarooService : SomeRandomApiAbstractService
|
||||
{
|
||||
public KangarooService() : base("kangaroo", "Кенгуру", 40, 175)
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public class KoalaService : SomeRandomApiAbstractService
|
||||
{
|
||||
public KoalaService() : base("koala", "Коала", 40, 180)
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public class PandaService : SomeRandomApiAbstractService
|
||||
{
|
||||
public PandaService() : base("panda", "Панда", 40, 160)
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public class RaccoonService : SomeRandomApiAbstractService
|
||||
{
|
||||
public RaccoonService() : base("raccoon", "Енот", 40, 160)
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public class RedPandaService : SomeRandomApiAbstractService
|
||||
{
|
||||
public RedPandaService() : base("red_panda", "Красная панда", 40, 150)
|
||||
{ }
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using Newtonsoft.Json;
|
||||
using Telegram.Bot.Types;
|
||||
using West.TelegramBot.ContentStore.Model;
|
||||
|
||||
namespace West.TelegramBot.ContentStore.Service.SomeRandomApi;
|
||||
|
||||
public abstract class SomeRandomApiAbstractService : IRandomMediaService
|
||||
{
|
||||
public StoreItem StoreItem { get; }
|
||||
public string ApiId => StoreItem.Id;
|
||||
|
||||
private readonly HttpClient _httpClient;
|
||||
|
||||
public SomeRandomApiAbstractService(string id, string name, double price, int order)
|
||||
{
|
||||
StoreItem = new(id, name, price, order);
|
||||
|
||||
// TODO: use factory or something, cause we have a lot of http clients in use
|
||||
_httpClient = new HttpClient();
|
||||
}
|
||||
|
||||
public async Task<RandomMedia> GetRandomMediaAsync()
|
||||
{
|
||||
var response = await _httpClient.GetStringAsync($"https://some-random-api.com/animal/{ApiId}");
|
||||
var image = JsonConvert.DeserializeObject<SomeRandomApiAnimalResponse>(response)!;
|
||||
|
||||
return new RandomMedia(new InputFileUrl(image.Image), image.Fact);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user