UNPKG

@aws-amplify/graphql-model-transformer

Version:
221 lines • 26.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateApplyDefaultsToInputTemplate = exports.generateUpdateInitSlotTemplate = exports.generateDeleteRequestTemplate = exports.generateCreateInitSlotTemplate = exports.generateCreateRequestTemplate = exports.generateUpdateRequestTemplate = void 0; const graphql_mapping_template_1 = require("graphql-mapping-template"); const graphql_transformer_common_1 = require("graphql-transformer-common"); const common_1 = require("../common"); const common_2 = require("./common"); const generateUpdateRequestTemplate = (modelName, isSyncEnabled) => { const objectKeyVariable = 'ctx.stash.metadata.modelObjectKey'; const keyFields = [(0, graphql_mapping_template_1.str)('id')]; if (isSyncEnabled) { keyFields.push((0, graphql_mapping_template_1.str)('_version')); keyFields.push((0, graphql_mapping_template_1.str)('_deleted')); keyFields.push((0, graphql_mapping_template_1.str)('_lastChangedAt')); } const statements = [ graphql_transformer_common_1.setArgs, (0, graphql_mapping_template_1.comment)('Set the default values to put request'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('mergedValues'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues'), (0, graphql_mapping_template_1.obj)({}))), (0, graphql_mapping_template_1.comment)('copy the values from input'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('mergedValues.putAll'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('args.input'), (0, graphql_mapping_template_1.obj)({})))), (0, graphql_mapping_template_1.comment)('set the typename'), (0, graphql_mapping_template_1.comment)('Initialize the vars for creating ddb expression'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expNames'), (0, graphql_mapping_template_1.obj)({})), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expValues'), (0, graphql_mapping_template_1.obj)({})), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expSet'), (0, graphql_mapping_template_1.obj)({})), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expAdd'), (0, graphql_mapping_template_1.obj)({})), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expRemove'), (0, graphql_mapping_template_1.list)([])), (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)(objectKeyVariable), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('Key'), (0, graphql_mapping_template_1.ref)(objectKeyVariable)), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('Key'), (0, graphql_mapping_template_1.obj)({ id: (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.dynamodb.toDynamoDB'), (0, graphql_mapping_template_1.ref)('args.input.id')) }))), (0, graphql_mapping_template_1.comment)('Model key'), (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)(objectKeyVariable), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('keyFields'), isSyncEnabled ? (0, graphql_mapping_template_1.list)([(0, graphql_mapping_template_1.str)('_version'), (0, graphql_mapping_template_1.str)('_deleted'), (0, graphql_mapping_template_1.str)('_lastChangedAt')]) : (0, graphql_mapping_template_1.list)([])), (0, graphql_mapping_template_1.forEach)((0, graphql_mapping_template_1.ref)('entry'), (0, graphql_mapping_template_1.ref)(`${objectKeyVariable}.entrySet()`), [(0, graphql_mapping_template_1.qref)('$keyFields.add("$entry.key")')]), ]), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('keyFields'), (0, graphql_mapping_template_1.list)(keyFields))), (0, graphql_mapping_template_1.forEach)((0, graphql_mapping_template_1.ref)('entry'), (0, graphql_mapping_template_1.ref)('util.map.copyAndRemoveAllKeys($mergedValues, $keyFields).entrySet()'), [ (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.raw)('!$util.isNull($ctx.stash.metadata.dynamodbNameOverrideMap) && $ctx.stash.metadata.dynamodbNameOverrideMap.containsKey("$entry.key")'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('entryKeyAttributeName'), (0, graphql_mapping_template_1.raw)('$ctx.stash.metadata.dynamodbNameOverrideMap.get("$entry.key")')), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('entryKeyAttributeName'), (0, graphql_mapping_template_1.raw)('$entry.key'))), (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)('util.isNull($entry.value)'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('discard'), (0, graphql_mapping_template_1.ref)('expRemove.add("#$entryKeyAttributeName")')), (0, graphql_mapping_template_1.qref)('$expNames.put("#$entryKeyAttributeName", "$entry.key")'), ]), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.qref)('$expSet.put("#$entryKeyAttributeName", ":$entryKeyAttributeName")'), (0, graphql_mapping_template_1.qref)('$expNames.put("#$entryKeyAttributeName", "$entry.key")'), (0, graphql_mapping_template_1.qref)('$expValues.put(":$entryKeyAttributeName", $util.dynamodb.toDynamoDB($entry.value))'), ])), ]), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('')), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.raw)('!$expSet.isEmpty()'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('SET')), (0, graphql_mapping_template_1.forEach)((0, graphql_mapping_template_1.ref)('entry'), (0, graphql_mapping_template_1.ref)('expSet.entrySet()'), [ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression $entry.key = $entry.value')), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('foreach.hasNext()'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression,'))), ]), ])), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.raw)('!$expAdd.isEmpty()'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression ADD')), (0, graphql_mapping_template_1.forEach)((0, graphql_mapping_template_1.ref)('entry'), (0, graphql_mapping_template_1.ref)('expAdd.entrySet()'), [ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression $entry.key $entry.value')), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('foreach.hasNext()'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression,'))), ]), ])), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.raw)('!$expRemove.isEmpty()'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression REMOVE')), (0, graphql_mapping_template_1.forEach)((0, graphql_mapping_template_1.ref)('entry'), (0, graphql_mapping_template_1.ref)('expRemove'), [ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression $entry')), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('foreach.hasNext()'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('expression'), (0, graphql_mapping_template_1.str)('$expression,'))), ]), ])), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('update'), (0, graphql_mapping_template_1.obj)({})), (0, graphql_mapping_template_1.qref)('$update.put("expression", "$expression")'), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.raw)('!$expNames.isEmpty()'), (0, graphql_mapping_template_1.qref)('$update.put("expressionNames", $expNames)')), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.raw)('!$expValues.isEmpty()'), (0, graphql_mapping_template_1.qref)('$update.put("expressionValues", $expValues)')), ...generateKeyConditionTemplate(true), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('args.condition'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.conditions.add'), (0, graphql_mapping_template_1.ref)('args.condition')))), (0, common_2.generateConditionSlot)('ctx.stash.conditions', 'Conditions'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('UpdateItem'), (0, graphql_mapping_template_1.obj)({ version: (0, graphql_mapping_template_1.str)('2018-05-29'), operation: (0, graphql_mapping_template_1.str)('UpdateItem'), key: (0, graphql_mapping_template_1.ref)('Key'), update: (0, graphql_mapping_template_1.ref)('update'), ...(isSyncEnabled && { _version: (0, graphql_mapping_template_1.ref)('util.defaultIfNull($args.input["_version"], 0)') }), })), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('Conditions'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('keyConditionExprNames'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('Conditions.expressionNames.putAll'), (0, graphql_mapping_template_1.ref)('keyConditionExprNames')))), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('UpdateItem.put'), (0, graphql_mapping_template_1.str)('condition'), (0, graphql_mapping_template_1.ref)('Conditions'))), ])), (0, graphql_mapping_template_1.toJson)((0, graphql_mapping_template_1.ref)('UpdateItem')), ]; return (0, graphql_mapping_template_1.printBlock)(`Mutation Update resolver`)((0, graphql_mapping_template_1.compoundExpression)(statements)); }; exports.generateUpdateRequestTemplate = generateUpdateRequestTemplate; const generateCreateRequestTemplate = (modelName, modelIndexFields) => { const statements = [ graphql_transformer_common_1.setArgs, (0, graphql_mapping_template_1.comment)('Set the default values to put request'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('mergedValues'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues'), (0, graphql_mapping_template_1.obj)({}))), (0, graphql_mapping_template_1.comment)('copy the values from input'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('mergedValues.putAll'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('args.input'), (0, graphql_mapping_template_1.obj)({})))), (0, graphql_mapping_template_1.comment)('set the typename'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('mergedValues.put'), (0, graphql_mapping_template_1.str)('__typename'), (0, graphql_mapping_template_1.str)(modelName))), ...(modelIndexFields.length ? [ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('nullIndexFields'), (0, graphql_mapping_template_1.list)([])), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('indexFields'), (0, graphql_mapping_template_1.list)(modelIndexFields.map((it) => (0, graphql_mapping_template_1.str)(it)))), (0, graphql_mapping_template_1.forEach)((0, graphql_mapping_template_1.ref)('entry'), (0, graphql_mapping_template_1.ref)('util.map.copyAndRetainAllKeys($mergedValues, $indexFields).entrySet()'), [ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.raw)('$util.isNull($entry.value)'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('nullIndexFields.add'), (0, graphql_mapping_template_1.ref)('entry.key')))), ]), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('mergedValues'), (0, graphql_mapping_template_1.ref)('util.map.copyAndRemoveAllKeys($mergedValues, $nullIndexFields)')), ] : []), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('PutObject'), (0, graphql_mapping_template_1.obj)({ version: (0, graphql_mapping_template_1.str)('2018-05-29'), operation: (0, graphql_mapping_template_1.str)('PutItem'), attributeValues: (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.dynamodb.toMapValues'), (0, graphql_mapping_template_1.ref)('mergedValues')), condition: (0, graphql_mapping_template_1.ref)('condition'), })), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('args.condition'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.conditions.add'), (0, graphql_mapping_template_1.ref)('args.condition')))), ...generateKeyConditionTemplate(false), (0, common_2.generateConditionSlot)('ctx.stash.conditions', 'Conditions'), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('Conditions'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('keyConditionExprNames'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('Conditions.expressionNames.putAll'), (0, graphql_mapping_template_1.ref)('keyConditionExprNames')))), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('PutObject.put'), (0, graphql_mapping_template_1.str)('condition'), (0, graphql_mapping_template_1.ref)('Conditions'))), ])), (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)('ctx.stash.metadata.modelObjectKey'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('PutObject.put'), (0, graphql_mapping_template_1.str)('key'), (0, graphql_mapping_template_1.ref)('ctx.stash.metadata.modelObjectKey'))), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('Key'), (0, graphql_mapping_template_1.obj)({ id: (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.dynamodb.toDynamoDB'), (0, graphql_mapping_template_1.ref)('mergedValues.id')), })), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('PutObject.put'), (0, graphql_mapping_template_1.str)('key'), (0, graphql_mapping_template_1.ref)('Key'))), ])), (0, graphql_mapping_template_1.toJson)((0, graphql_mapping_template_1.ref)('PutObject')), ]; return (0, graphql_mapping_template_1.printBlock)('Create Request template')((0, graphql_mapping_template_1.compoundExpression)(statements)); }; exports.generateCreateRequestTemplate = generateCreateRequestTemplate; const generateCreateInitSlotTemplate = (modelConfig, initializeIdField) => { const statements = [ (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.put'), (0, graphql_mapping_template_1.str)('defaultValues'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues'), (0, graphql_mapping_template_1.obj)({})))), ]; if (initializeIdField) { statements.push((0, common_1.defaultAutoId)()); } if (modelConfig === null || modelConfig === void 0 ? void 0 : modelConfig.timestamps) { statements.push((0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('createdAt'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.time.nowISO8601')))); if (modelConfig.timestamps.createdAt) { statements.push((0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues.put'), (0, graphql_mapping_template_1.str)(modelConfig.timestamps.createdAt), (0, graphql_mapping_template_1.ref)('createdAt')))); } if (modelConfig.timestamps.updatedAt) { statements.push((0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues.put'), (0, graphql_mapping_template_1.str)(modelConfig.timestamps.updatedAt), (0, graphql_mapping_template_1.ref)('createdAt')))); } } statements.push((0, graphql_mapping_template_1.toJson)((0, graphql_mapping_template_1.obj)({ version: (0, graphql_mapping_template_1.str)('2018-05-29'), payload: (0, graphql_mapping_template_1.obj)({}), }))); return (0, graphql_mapping_template_1.printBlock)('Initialization default values')((0, graphql_mapping_template_1.compoundExpression)(statements)); }; exports.generateCreateInitSlotTemplate = generateCreateInitSlotTemplate; const generateDeleteRequestTemplate = (modelName, isSyncEnabled) => { const statements = [ graphql_transformer_common_1.setArgs, (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('DeleteRequest'), (0, graphql_mapping_template_1.obj)({ version: (0, graphql_mapping_template_1.str)('2018-05-29'), operation: (0, graphql_mapping_template_1.str)('DeleteItem'), })), (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)('ctx.stash.metadata.modelObjectKey'), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('Key'), (0, graphql_mapping_template_1.ref)('ctx.stash.metadata.modelObjectKey')), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('Key'), (0, graphql_mapping_template_1.obj)({ id: (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.dynamodb.toDynamoDB'), (0, graphql_mapping_template_1.ref)('args.input.id')) }))), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('DeleteRequest.put'), (0, graphql_mapping_template_1.str)('key'), (0, graphql_mapping_template_1.ref)('Key'))), ...generateKeyConditionTemplate(true), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('args.condition'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.conditions.add'), (0, graphql_mapping_template_1.ref)('args.condition')))), (0, common_2.generateConditionSlot)('ctx.stash.conditions', 'Conditions'), (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('Conditions'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.iff)((0, graphql_mapping_template_1.ref)('keyConditionExprNames'), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('Conditions.expressionNames.putAll'), (0, graphql_mapping_template_1.ref)('keyConditionExprNames')))), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('DeleteRequest.put'), (0, graphql_mapping_template_1.str)('condition'), (0, graphql_mapping_template_1.ref)('Conditions'))), ])), ]; if (isSyncEnabled) { statements.push((0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('DeleteRequest.put'), (0, graphql_mapping_template_1.str)('_version'), (0, graphql_mapping_template_1.ref)('util.defaultIfNull($args.input["_version"], 0)')))); } statements.push((0, graphql_mapping_template_1.toJson)((0, graphql_mapping_template_1.ref)('DeleteRequest'))); return (0, graphql_mapping_template_1.printBlock)('Delete Request template')((0, graphql_mapping_template_1.compoundExpression)(statements)); }; exports.generateDeleteRequestTemplate = generateDeleteRequestTemplate; const generateUpdateInitSlotTemplate = (modelConfig) => { const statements = [ (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.put'), (0, graphql_mapping_template_1.str)('defaultValues'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues'), (0, graphql_mapping_template_1.obj)({})))), ]; if (modelConfig === null || modelConfig === void 0 ? void 0 : modelConfig.timestamps) { if (modelConfig.timestamps.updatedAt) { statements.push((0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('updatedAt'), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.time.nowISO8601')))); statements.push((0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues.put'), (0, graphql_mapping_template_1.str)(modelConfig.timestamps.updatedAt), (0, graphql_mapping_template_1.ref)('updatedAt')))); } } statements.push((0, graphql_mapping_template_1.toJson)((0, graphql_mapping_template_1.obj)({ version: (0, graphql_mapping_template_1.str)('2018-05-29'), payload: (0, graphql_mapping_template_1.obj)({}), }))); return (0, graphql_mapping_template_1.printBlock)('Initialization default values')((0, graphql_mapping_template_1.compoundExpression)(statements)); }; exports.generateUpdateInitSlotTemplate = generateUpdateInitSlotTemplate; const generateApplyDefaultsToInputTemplate = (target) => (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)(target), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('ctx.stash.defaultValues'), (0, graphql_mapping_template_1.obj)({}))), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)(`${target}.putAll`), (0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('util.defaultIfNull'), (0, graphql_mapping_template_1.ref)('ctx.args.input'), (0, graphql_mapping_template_1.obj)({})))), ]); exports.generateApplyDefaultsToInputTemplate = generateApplyDefaultsToInputTemplate; const generateKeyConditionTemplate = (attributeExistsValue) => { const statements = [ (0, graphql_mapping_template_1.comment)('Begin - key condition'), (0, graphql_mapping_template_1.ifElse)((0, graphql_mapping_template_1.ref)('ctx.stash.metadata.modelObjectKey'), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('keyConditionExpr'), (0, graphql_mapping_template_1.obj)({})), (0, graphql_mapping_template_1.set)((0, graphql_mapping_template_1.ref)('keyConditionExprNames'), (0, graphql_mapping_template_1.obj)({})), (0, graphql_mapping_template_1.forEach)((0, graphql_mapping_template_1.ref)('entry'), (0, graphql_mapping_template_1.ref)('ctx.stash.metadata.modelObjectKey.entrySet()'), [ (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('keyConditionExpr.put'), (0, graphql_mapping_template_1.str)('keyCondition$velocityCount'), (0, graphql_mapping_template_1.obj)({ attributeExists: (0, graphql_mapping_template_1.bool)(attributeExistsValue) }))), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('keyConditionExprNames.put'), (0, graphql_mapping_template_1.str)('#keyCondition$velocityCount'), (0, graphql_mapping_template_1.str)('$entry.key'))), ]), (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.conditions.add'), (0, graphql_mapping_template_1.ref)('keyConditionExpr'))), ]), (0, graphql_mapping_template_1.compoundExpression)([ (0, graphql_mapping_template_1.qref)((0, graphql_mapping_template_1.methodCall)((0, graphql_mapping_template_1.ref)('ctx.stash.conditions.add'), (0, graphql_mapping_template_1.obj)({ id: (0, graphql_mapping_template_1.obj)({ attributeExists: (0, graphql_mapping_template_1.bool)(attributeExistsValue) }) }))), ])), (0, graphql_mapping_template_1.comment)('End - key condition'), ]; return statements; }; //# sourceMappingURL=mutation.js.map