package com.lemans @SuppressWarnings('LineLength') @SuppressWarnings('AbcMetric') class UrlMappings { static mappings = { //Size Charts "/dm/$dm/sizeChart"(controller: 'sizeChart') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/sizeChart/$sizeChartId"(controller: 'sizeChart') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } //Product Size Charts "/dm/$dm/product/$productId/sizeChart"(controller: 'productSizeChart') { action = [GET: 'index'] } "/dm/$dm/sizeChart/$sizeChartId/product"(controller: 'productSizeChart') { action = [GET: 'index'] } "/dm/$dm/productSizeChart"(controller: 'productSizeChart') { action = ['POST': 'create'] } "/dm/$dm/productSizeChart/$productSizeChartId"(controller: 'productSizeChart') { action = [GET: 'show', PUT: 'update', DELETE: 'delete'] } "/dm/$dm/synonym/$synonymId"(controller: 'synonym') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/synonym"(controller: 'synonym') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/$entity/$entityId/keyword/$keywordId"(controller: 'keyword') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/$entity/$entityId/keyword"(controller: 'keyword') { action = [GET: 'index', POST: 'add'] } //Quality Control -Part "/dm/$dm/qualityControl/part/$partNumber/details"(controller: 'partReview') { action = [GET: 'partDetails'] } "/dm/$dm/qualityControl/part/$partNumber/qcStatus"(controller: 'partReview') { action = [GET: 'partQC'] } "/dm/$dm/qualityControl/part/$partNumber/catalog"(controller: 'partReview') { action = [GET: 'partCatalog'] } "/dm/$dm/qualityControl/part/$partNumber/related"(controller: 'partReview') { action = [GET: 'relatedParts'] } "/dm/$dm/qualityControl/part/$partNumber/media"(controller: 'partReview') { action = [GET: 'partMedia'] } "/dm/$dm/qualityControl/part/$partNumber/attributes"(controller: 'partReview') { action = [GET: 'partAttributes'] } "/dm/$dm/qualityControl/part/$partNumber/fitments"(controller: 'partReview') { action = [GET: 'partFitments'] } "/dm/$dm/qualityControl/part/$partNumber/oem"(controller: 'partReview') { action = [GET: 'oemParts'] } "/dm/$dm/qualityControl/part/$partNumber/keywords"(controller: 'partReview') { action = [GET: 'partKeywords'] } // alternatively we can also use /details endpoints, which provide all details related to partMetaData including certification details /* "/dm/$dm/qualityControl/part/$partNumber/certification"(controller: 'partReview') { action = [GET: 'certificationParts'] }*/ "/dm/$dm/qualityControl/part/approve"(controller: 'partReview') { action = [POST: 'approveByChangeLogIds'] } "/dm/$dm/qualityControl/part/decline"(controller: 'partReview') { action = [POST: 'declineByChangeLogIds'] } "/dm/$dm/qualityControl/part/$partNumber/approve"(controller: 'partReview') { action = [POST: 'approveByPartNumber'] } "/dm/$dm/qualityControl/part/$partNumber/approveHidden"(controller: 'partReview') { action = [POST: 'emailAndApproveByPartNumber'] } "/dm/$dm/qualityControl/product/$productId/approve"(controller: 'productReview') { action = [POST: 'approveByProductId'] } "/dm/$dm/qualityControl/product/$productId/approveHidden"(controller: 'productReview') { action = [POST: 'emailAndApproveByProductId'] } //Quality Control -Product "/dm/$dm/qualityControl/product/$productId"(controller: 'productReview') { action = [GET: 'reviewByProduct'] } "/dm/$dm/qualityControl/product/$productId/details"(controller: 'productReview') { action = [GET: 'productDetails'] } "/dm/$dm/qualityControl/product/$productId/qcStatus"(controller: 'productReview') { action = [GET: 'productQC'] } "/dm/$dm/qualityControl/product/$productId/parts"(controller: 'productReview') { action = [GET: 'productParts'] } "/dm/$dm/qualityControl/product/$productId/partsToQC"(controller: 'productReview') { action = [GET: 'productPartsToQC'] } "/dm/$dm/qualityControl/product/$productId/media"(controller: 'productReview') { action = [GET: 'productMedia'] } "/dm/$dm/qualityControl/product/$productId/features"(controller: 'productReview') { action = [GET: 'productFeatures'] } "/dm/$dm/qualityControl/product/$productId/merchandising"(controller: 'productReview') { action = [GET: 'productMerchandising'] } "/dm/$dm/qualityControl/product/$productId/related"(controller: 'productReview') { action = [GET: 'relatedProducts'] } "/dm/$dm/qualityControl/product/$productId/publicationCategories"(controller: 'productReview') { action = [GET: 'publicationCategories'] } "/dm/$dm/qualityControl/product/$productId/splitProducts"(controller: 'productReview') { action = [GET: 'splitProducts'] } "/dm/$dm/qualityControl/product/$productId/keywords"(controller: 'productReview') { action = [GET: 'productKeywords'] } "/dm/$dm/qualityControl/product/$productId/sizeCharts"(controller: 'productReview') { action = [GET: 'sizeCharts'] } "/dm/$dm/qualityControl/product/approve"(controller: 'productReview') { action = [POST: 'approveByChangeLogIds'] } "/dm/$dm/qualityControl/product/decline"(controller: 'productReview') { action = [POST: 'declineByChangeLogIds'] } //Overview "/dm/$dm/solr/queues/userOverView"(controller: 'dsSolrQueue') { action = [GET: 'userOverView'] } "/dm/$dm/solr/queues/adminOverView"(controller: 'dsSolrQueue') { action = [GET: 'adminOverView'] } "/dm/$dm/solr/queues/executiveOverView"(controller: 'dsSolrQueue') { action = [GET: 'executiveOverView'] } "/dm/$dm/part/$partNumber/fitment"(controller: 'partFitment') { action = [POST: 'add', GET: 'fitmentsByPart'] } "/dm/$dm/part/$partNumber/fitment/$fitmentId"(controller: 'partFitment') { action = [PUT: 'update', DELETE: 'delete'] } "/dm/$dm/make"(controller: 'make') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/localeImportJob"(controller: 'bulkLocaleImport') { action = [POST: 'add', GET: 'index'] } "/dm/$dm/localeImportJob/$importFileId"(controller: 'bulkLocaleImport') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/localeImportJob/$importFileId/file/$fileId/download"(controller: 'bulkLocaleImport') { action = [GET: 'download'] } "/dm/$dm/report/$reportName/download"(controller: 'bulkLocaleExport') { action = [GET: 'downloadBulkExportFile'] } "/dm/$dm/make/$makeId"(controller: 'make') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/make/$makeId/model"(controller: 'model') { action = [GET: 'index_v2', POST: 'add'] } "/dm/$dm/make/$makeId/model/$modelId"(controller: 'model') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/make/$makeId/model/$modelId/segment/$segmentCode"(controller: 'segment') { action = [PUT: 'addUpdateOrDeleteModelSegment'] } "/dm/$dm/make/$makeId/model/$modelId/year"(controller: 'modelYear') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/make/$makeId/model/$modelId/year/$yearId"(controller: 'modelYear') { action = [DELETE: 'remove'] } "/dm/$dm/make/$makeId/segment"(controller: 'segment') { action = [GET: 'segments'] } "/dm/$dm/make/$makeId/segment/$segmentCode/value"(controller: 'segment') { action = [GET: 'segmentValues'] } "/dm/$dm/search/$searchType/filter/$filterType"(controller: 'genericSearch') { action = [GET: 'filters'] } "/dm/$dm/search/$searchType/filter/$filterName/options"(controller: 'genericSearch') { action = [GET: 'filterOptions'] } "/dm/$dm/search/$searchType"(controller: 'genericSearch') { action = [GET: 'search'] } "/dm/$dm/mediaClassification"(controller: 'media') { action = [GET: 'classifications'] } "/dm/$dm/media"(controller: 'media') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/media/$mediaId"(controller: 'media') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/media/$mediaId/download"(controller: 'media') { action = [GET: 'download'] } "/dm/$dm/media/entity"(controller: 'mediaEntity') { action = [POST: 'bulkAddOrRemoveMediaEntity'] } "/dm/$dm/media/$mediaId/entity"(controller: 'mediaEntity') { action = [GET: 'index'] } "/dm/$dm/media/$mediaId/entity/$entityId"(controller: 'mediaEntity') { action = [PUT: 'updateMediaEntity'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/feature/$productFeatureId/move"(controller: 'productFeature') { action = [PUT: 'move'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/feature"(controller: 'productFeature') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/feature/$productFeatureId"(controller: 'productFeature') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/splitValidation"(controller: 'product') { action = [POST: 'splitValidation'] } "/dm/$dm/catalog/$catalogInstanceId/product"(controller: 'product') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId"(controller: 'product') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/product"(controller: 'categoryProduct') { action = [POST: 'addOrRemoveAssociation'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/media"(controller: 'mediaEntity') { action = [GET: 'getMediaForProduct', POST: 'addMediaToProduct'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/media/$mediaId"(controller: 'mediaEntity') { action = [DELETE: 'removeMediaOnProduct'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/part"(controller: 'productPart') { action = [GET: 'index', POST: 'bulkAddOrRemoveOperation'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/attribute"(controller: 'productMerchandise') { action = [GET: 'getMerchandiseProductAttributeDetails'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/attribute/$categoryAttributeId"(controller: 'productMerchandise') { action = [PUT: 'update'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/part/$partNumber"(controller: 'productPart') { action = [GET: 'show', DELETE: 'remove'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/part"(controller: 'categoryPart') { action = [PUT: 'addOrRemove'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/subComCode"(controller: 'categorySubComCode') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/subComCode/$subComCodeId"(controller: 'categorySubComCode') { action = [GET: 'show', DELETE: 'remove'] } "/dm/$dm/subComCode"(controller: 'subComCode') { action = [GET: 'index'] } "/dm/$dm/subComCode/$subComCode"(controller: 'subComCode') { action = [GET: 'show'] } "/dm/$dm/part"(controller: 'part') { action = [GET: 'index'] } "/dm/$dm/part/$partNumber"(controller: 'part') { action = [GET: 'show', PUT: 'update'] } "/dm/$dm/part/$partNumber/bundle"(controller: 'part') { action = [GET: 'getBundlesForPart'] } "/dm/$dm/part/$partNumber/media"(controller: 'mediaEntity') { action = [GET: 'getMediaForPart', POST: 'addMediaToPart'] } "/dm/$dm/part/$partNumber/media/$mediaId"(controller: 'mediaEntity') { action = [DELETE: 'removeMediaOnPart'] } "/dm/$dm/part/$partNumber/media/$mediaId/move"(controller: 'mediaEntity') { action = [PUT: 'movePartMedia'] } "/dm/$dm/product/$productId/media/$mediaId/move"(controller: 'mediaEntity') { action = [PUT: 'moveProductMedia'] } "/dm/$dm/attributeName"(controller: 'attributeName') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/attributeName/$id"(controller: 'attributeName') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/attributeValue"(controller: 'attributeValue') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/attributeValue/$id"(controller: 'attributeValue') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/attributeName/$attributeNameId/attributeValue"(controller: 'attributeValue') { action = [GET: 'attributeValuesByAttributeNameIdInCategoryContext'] } "/dm/$dm/part/attribute"(controller: 'partAttribute') { action = [POST: 'bulkAddOrRemoveOperation'] } "/dm/$dm/attributeName/$attributeNameId/part"(controller: 'attributePart') { action = [GET: 'partsByAttributeName'] } "/dm/$dm/attributeValue/$attributeValueId/part"(controller: 'attributePart') { action = [GET: 'partsByAttributeValue'] } "/dm/$dm/attributeName/$attributeNameId/category"(controller: 'attributeCategory') { action = [GET: 'categoriesByAttributeName'] } "/dm/$dm/attributeValue/$attributeValueId/category"(controller: 'attributeCategory') { action = [GET: 'categoriesByAttributeValue'] } "/dm/$dm/part/$partNumber/attribute/$attributeNameId/value"(controller: 'partAttribute') { action = [POST: 'add', PUT: 'bulkReplaceOperation'] } "/dm/$dm/part/$partNumber/attribute/$attributeNameId/value/$attributeValueId" (controller: 'partAttribute') { action = [DELETE: 'remove'] } "/dm/$dm/catalog/$catalogInstanceId/category/$id/move"(controller: 'category') { action = [PUT: 'move'] } "/dm/$dm/catalog/$catalogInstanceId/category/$id"(controller: 'category') { action = [GET: 'show', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/catalog/$catalogInstanceId/category"(controller: 'category') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/details"(controller: 'category') { action = [GET: 'details'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/part/details"(controller: 'partAttribute') { action = [POST: 'categoryPartDetails'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/attribute"(controller: 'categoryAttribute') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/attribute/$attributeNameId"(controller: 'categoryAttribute') { action = [GET: 'showByCompositeKey', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/attribute/$attributeNameId/move"(controller: 'categoryAttribute') { action = [PUT: 'move'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/attribute/$attributeNameId/value"(controller: 'categoryAttributeValue') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/attribute/$attributeNameId/value/$attributeValueId" (controller: 'categoryAttributeValue') { action = [GET: 'showByCompositeKey', PUT: 'update', DELETE: 'remove'] } "/dm/$dm/catalog/$catalogInstanceId/category/$categoryId/attribute/$attributeNameId/value/$attributeValueId/move" (controller: 'categoryAttributeValue') { action = [PUT: 'move'] } "/dm/$dm/brand"(parseRequest: true, controller: 'brand') { action = [GET: 'brandSearch'] } "/dm/$dm/brand/$brandId"(controller: 'brand') { action = [PUT: 'update', GET: 'show'] } "/dm/$dm/brand/$brandId/media"(controller: 'mediaEntity') { action = [GET: 'getMediaForBrand'] } '/stuff'(controller: 'stuff') { action = [GET: 'index'] } //partAssociation "/dm/$dm/part/$partNumber/relatedPart/$id"(controller: 'partAssociation') { action = [PUT: 'update', DELETE: 'remove', GET: 'show'] } "/dm/$dm/part/$partNumber/relatedPart"(controller: 'partAssociation') { action = [GET: 'relatedParts', POST: 'add'] } "/dm/$dm/part/$partNumber/referralPart"(controller: 'partAssociation') { action = [GET: 'referralParts'] } //productAssociation "/dm/$dm/catalog/$catalogInstanceId/product/$productId/relatedProduct/$id"(controller: 'productAssociation') { action = [PUT: 'update', DELETE: 'remove', GET: 'show'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/relatedProduct"(controller: 'productAssociation') { action = [GET: 'relatedProducts', POST: 'add'] } "/dm/$dm/catalog/$catalogInstanceId/product/$productId/referralProduct"(controller: 'productAssociation') { action = [GET: 'referralProducts'] } "/dm/$dm/flag"(controller: 'flag') { action = [GET: 'index'] } "/dm/$dm/$entityClass/flag"(controller: 'flag') { action = [GET: 'index'] } "/dm/$dm/$entityClass/$entityId/flag/$flagId"(controller: 'flagValue') { action = [GET: 'show'] } "/dm/$dm/$entityClass/$entityId/flag"(controller: 'flagValue') { action = [GET: 'index', POST: 'addOrDeleteFlagValues'] } //publicationcategory "/dm/$dm/publicationCategory"(controller: 'publicationCategory') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/publicationCategory/$categoryId"(controller: 'publicationCategory') { action = [GET: 'show', PUT: 'update', DELETE: 'delete'] } "/dm/$dm/publicationCategory/$categoryId/move"(controller: 'publicationCategory') { action = [PUT: 'move'] } //ProductPublicationCategory "/dm/$dm/publicationCategory/$categoryId/product"(controller: 'productPublicationCategory') { action = [GET: 'byCategoryId', POST: 'add'] } "/dm/$dm/product/$productId/publicationCategory"(controller: 'productPublicationCategory') { action = [GET: 'byProductId'] } "/dm/$dm/publicationCategory/$categoryId/product/$productId"(controller: 'productPublicationCategory') { action = [DELETE: 'delete'] } "/dm/$dm/publicationCategory/$categoryId/product/$productId/move"(controller: 'productPublicationCategory') { action = [PUT: 'move'] } //PartPublicationCAtegory "/dm/$dm/publicationCategory/$categoryId/part"(controller: 'partPublicationCategory') { action = [GET: 'byCategoryId', POST: 'add'] } "/dm/$dm/part/$partNumber/publicationCategory"(controller: 'partPublicationCategory') { action = [GET: 'byPartNumber'] } "/dm/$dm/publicationCategory/$categoryId/part/$partNumber"(controller: 'partPublicationCategory') { action = [DELETE: 'delete'] } "/dm/$dm/publicationCategory/$categoryId/part/$partNumber/move"(controller: 'partPublicationCategory') { action = [PUT: 'move'] } //Explosion Diagram "/dm/$dm/explosionDiagram"(controller: 'explosionDiagram') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/explosionDiagram/$explosionDiagramId"(controller: 'explosionDiagram') { action = [GET: 'show', PUT: 'update', DELETE: 'delete'] } //publicationCategoryAttribute "/dm/$dm/publicationCategory/$categoryId/attribute"(controller: 'publicationCategoryAttribute') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/publicationCategory/$categoryId/attributeOptions"(controller: 'publicationCategoryAttribute') { action = [GET: 'attributeOptions'] } "/dm/$dm/publicationCategory/$categoryId/attribute/$attributeNameId"(controller: 'publicationCategoryAttribute') { action = [GET: 'showByCompositeKey', DELETE: 'delete'] } "/dm/$dm/publicationCategory/$categoryId/attribute/$attributeNameId/move"(controller: 'publicationCategoryAttribute') { action = [PUT: 'move'] } //categoryUser "/dm/$dm/categorySpecialist/$userName/category"(controller: 'categorySpecialist') { action = [GET: 'getAllCategoriesAssignedToUser', POST: 'add'] } "/dm/$dm/categorySpecialist/$userName/category/$categoryId"(controller: 'categorySpecialist') { action = [DELETE: 'delete'] } // Model Family "/dm/$dm/make/$makeId/modelFamily"(controller: 'modelFamily') { action = [GET: 'index', POST: 'create'] } "/dm/$dm/make/$makeId/modelFamily/$modelFamilyId"(controller: 'modelFamily') { action = [GET: 'showByMakeIdAndModelFamilyId', PUT: 'update', DELETE: 'delete'] } //ModelSegmentYear "/dm/$dm/make/$makeId/model/$modelId/year/$modelYearId/segment"(controller: 'modelSegmentYear') { action = [GET: 'findByModelYear', POST: 'create'] } "/dm/$dm/make/$makeId/model/$modelId/year/$modelYearId/segment/$segmentId"(controller: 'modelSegmentYear') { action = [GET: 'findBymodelYearAndSegment', DELETE: 'delete'] } "/dm/$dm/make/$makeId/model/$modelId/segment/$segmentId/override"(controller: 'modelSegmentYear') { action = [GET: 'findBySegment'] } //Vendor "/dm/$dm/vendor"(controller: 'vendor') { action = [GET: 'index'] } //warehouse "/dm/$dm/warehouse"(controller: 'warehouse') { action = [GET: 'index'] } //Export -Queues "/dm/$dm/export/$searchType/download"(controller: 'genericSearch') { action = [GET: 'download'] } //OEM partNumber "/dm/$dm/oemPartNumber"(controller: 'oemPart') { action = [GET: 'getOemPartNumbers'] } "/dm/$dm/part/$partNumber/oemPartNumber"(controller: 'oemPart') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/part/$partNumber/oemPart/$oemPartId"(controller: 'oemPart') { action = [DELETE: 'delete'] } //TentativeFitment "/dm/$dm/partTentativeFitment/$partTentativeFitmentId"(controller: 'tentativeFitment') { action = [DELETE: 'delete'] } //Merge "/dm/$dm/make/$makeId/model/$targetModelId/merge"(controller: 'model') { action = [POST: 'mergeModels'] } //CategorySpecialist notes "/dm/$dm/categorySpecialist/$userName/notes"(controller: 'categorySpecialistNotes') { action = [POST: 'create', GET: 'index'] } "/dm/$dm/categorySpecialist/$userName/notes/$notesId"(controller: 'categorySpecialistNotes') { action = [GET: 'show', PUT: 'update', DELETE: 'delete'] } //Digi Photo Order "/dm/$dm/studioOrder"(controller: 'studioOrder') { action = [POST: 'create', GET: 'index'] } "/dm/$dm/studioOrder/$studioOrderId"(controller: 'studioOrder') { action = [GET: 'show', DELETE: 'delete', PUT: 'update'] } //Digi studio order part "/dm/$dm/studioOrder/$studioOrderId/part"(controller: 'studioOrderPart') { action = [GET: 'index', POST: 'performActions'] } "/dm/$dm/studioOrder/$studioOrderId/part/$partNumber"(controller: 'studioOrderPart') { action = [GET: 'show'] } //catalogInstance "/dm/$dm/catalogInstance"(controller: 'catalogInstance') { action = [GET: 'index', POST: 'create'] } "/dm/$dm/catalogInstance/$catalogInstanceId"(controller: 'catalogInstance') { action = [GET: 'show', PUT: 'update', DELETE: 'delete'] } "/dm/$dm/catalog"(controller: 'catalogInstance') { action = [GET: 'catalogIndex'] } //CatalogProduct "/dm/$dm/catalogInstance/$catalogInstanceId/product"(controller: 'catalogProduct') { action = [GET: 'index', POST: 'add'] } "/dm/$dm/catalogInstance/$catalogInstanceId/product/$productId"(controller: 'catalogProduct') { action = [GET: 'view', DELETE: 'remove'] } //PartFitmentTentative "/dm/$dm/partFitmentTentative/$partFitmentTentativeId"(controller: 'tentativeFitment') { action = [PUT: 'update'] } } }