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); } } }