import { LanguageVariantElementsBuilder, languageVariantElementsBuilder } from '../../models/language-variants/language-variant-elements-builder'; import { LanguageVariantContracts } from '../../contracts'; import { IManagementClientConfig } from '../../config'; import { Identifiers } from '../../models'; import { LanguageVariantResponses } from '../../responses'; import { ManagementQueryService } from '../../services'; import { BaseQuery } from '../base-query'; export class UpsertLanguageVariantQuery extends BaseQuery { constructor( protected config: IManagementClientConfig, protected queryService: ManagementQueryService, protected contentItemIdentifier: Identifiers.ContentItemIdentifier, protected languageIdentifier: Identifiers.LanguageIdentifier, public data: ( builder: LanguageVariantElementsBuilder ) => LanguageVariantContracts.IUpsertLanguageVariantPostContract ) { super(config, queryService); } toPromise(): Promise { return this.queryService.upsertLanguageVariantAsync( this.getUrl(), this.data(languageVariantElementsBuilder), this.queryConfig ); } protected getAction(): string { return this.apiEndpoints.upsertLanguageVariant(this.contentItemIdentifier, this.languageIdentifier); } }