in Tasks/GooglePlayReleaseV4/modules/metadataHelper.ts [184:223]
async function addLanguageListing(edits: pub3.Resource$Edits, languageCode: string, directory: string) {
const listingResource: pub3.Schema$Listing = createListingResource(languageCode, directory);
const isPatch:boolean = (!listingResource.fullDescription) ||
(!listingResource.shortDescription) ||
(!listingResource.title);
const isEmpty:boolean = (!listingResource.fullDescription) &&
(!listingResource.shortDescription) &&
(!listingResource.video) &&
(!listingResource.title);
const listingRequestParameters: pub3.Params$Resource$Edits$Listings$Patch = {
language: languageCode,
requestBody: listingResource
};
try {
if (isEmpty) {
tl.debug(`Skip localized ${languageCode} store listing.`);
} else if (isPatch) {
tl.debug(`Patching an existing localized ${languageCode} store listing.`);
tl.debug('Request Parameters: ' + JSON.stringify(listingRequestParameters));
await edits.listings.patch(listingRequestParameters);
tl.debug(`Successfully patched the localized ${languageCode} store listing.`);
} else {
// The patch method fails if the listing for the language does not exist already,
// while update actually updates or creates.
tl.debug(`Updating a localized ${languageCode} store listing.`);
tl.debug('Request Parameters: ' + JSON.stringify(listingRequestParameters));
await edits.listings.update(listingRequestParameters);
tl.debug(`Successfully updated the localized ${languageCode} store listing.`);
}
} catch (e) {
tl.debug(`Failed to create the localized ${languageCode} store listing.`);
tl.debug(e);
throw new Error(tl.loc('CannotCreateListing', languageCode, e));
}
}