jetherald/JetHerald/Commands/SubscribeCommand.cs
2019-08-11 00:56:48 +03:00

38 lines
1007 B
C#

using System.Threading.Tasks;
using Telegram.Bot.Args;
namespace JetHerald
{
public class SubscribeCommand : IChatCommand
{
Db db;
public SubscribeCommand(Db db)
{
this.db = db;
}
public async Task<string> Execute(CommandString cmd, MessageEventArgs args)
{
if (cmd.Parameters.Length < 1)
return null;
var chatid = args.Message.Chat.Id;
var token = cmd.Parameters[0];
var topic = await db.GetTopic(token, chatid);
if (topic == null)
return "topic not found";
else if (topic.ChatId == chatid)
return $"already subscribed to {topic.Name}";
else if (topic.ReadToken != token)
return "token mismatch";
else
{
await db.CreateSubscription(topic.TopicId, chatid);
return $"subscribed to {topic.Name}";
}
}
}
}