using System.Threading.Tasks;
using HotChocolate;
using HotChocolate.AspNetCore.Authorization;
using HotChocolate.Types;
using WotBlitzStatisticsPro.Common.Model;
using WotBlitzStatisticsPro.Logic;
namespace WotBlitzStatisticsPro.GraphQl.Mutation
{
///
/// WotBlitzStatistics Mutations
///
[ExtendObjectType(Name = "Mutation")]
public class WotBlitzStatisticsMutation
{
private readonly IWargamingDictionaries _wargamingDictionaries;
private readonly IWargamingAccounts _wargamingAccounts;
public WotBlitzStatisticsMutation(IWargamingDictionaries wargamingDictionaries,
IWargamingAccounts wargamingAccounts)
{
_wargamingDictionaries = wargamingDictionaries;
_wargamingAccounts = wargamingAccounts;
}
///
/// Updates the necessary dictionaries in database.
///
/// Determines what dictionaries should be updated.
/// Information about what was updated.
[Authorize(Policy = "GithubMbogaOnly")]
public Task UpdateDictionaries(
UpdateDictionariesRequest updateDictionariesRequest)
{
return _wargamingDictionaries.UpdateDictionaries(updateDictionariesRequest);
}
///
/// Gathers all account information
///
/// Account region
/// AccountId
/// Request language
/// Wargaming authentication token
///
public Task GatherAccountInformation(
RealmType realmType,
long accountId,
RequestLanguage requestLanguage,
[GlobalState("WgToken")] string wgToken)
{
return _wargamingAccounts.GatherAndSaveAccountInformation(realmType, accountId, requestLanguage, wgToken);
}
}
}