Index: trunk/grails-app/services/com/lemans/ds/media/MediaEntityManagerService.groovy =================================================================== diff -u -r9928 -r10001 --- trunk/grails-app/services/com/lemans/ds/media/MediaEntityManagerService.groovy (.../MediaEntityManagerService.groovy) (revision 9928) +++ trunk/grails-app/services/com/lemans/ds/media/MediaEntityManagerService.groovy (.../MediaEntityManagerService.groovy) (revision 10001) @@ -49,6 +49,16 @@ [errors: errors] } + MediaEntity updateMediaEntity(Map input, Integer mediaId, String entityId, String username) { + MediaEntity mediaEntity = MediaEntity.findByMediaIdAndEntityIdAndDateDeletedIsNull(mediaId, entityId) + if (mediaEntity) { + applyValuesToDomain(input, mediaEntity) + mediaEntity.validate() + saveOrDiscardDomain(mediaEntity, username) + } + mediaEntity + } + private updateFlagOnMedia(Map input, String username) { if (input.mediaId) { List media = [] Index: trunk/grails-app/services/com/lemans/ds/media/MediaEntityService.groovy =================================================================== diff -u -r8172 -r10001 --- trunk/grails-app/services/com/lemans/ds/media/MediaEntityService.groovy (.../MediaEntityService.groovy) (revision 8172) +++ trunk/grails-app/services/com/lemans/ds/media/MediaEntityService.groovy (.../MediaEntityService.groovy) (revision 10001) @@ -36,5 +36,16 @@ mediaService.findMedia(criteria) } + /** + * Find MediaEntity by id(MediaEntityId) + * + * @param mediaEntityId + * + * @return MediaEntity + */ + Map findMediaEntityById(Integer mediaEntityId) { + dqx([mediaEntityId: mediaEntityId]).executeOneFrom('vwMediaEntity', ['mediaEntityId = :mediaEntityId'])?.results[0] + } + } Index: trunk/grails-app/controllers/com/lemans/ds/media/MediaEntityController.groovy =================================================================== diff -u -r8172 -r10001 --- trunk/grails-app/controllers/com/lemans/ds/media/MediaEntityController.groovy (.../MediaEntityController.groovy) (revision 8172) +++ trunk/grails-app/controllers/com/lemans/ds/media/MediaEntityController.groovy (.../MediaEntityController.groovy) (revision 10001) @@ -74,4 +74,11 @@ data.errors ? renderErrors(data.errors) : render(toJson([results: []])) } + def updateMediaEntity(Integer mediaId, String entityId) { + renderObject mediaEntityManagerService.updateMediaEntity(request.JSON, mediaId, entityId, auditUserName) + } + + def show(Integer mediaEntityId) { + renderOne mediaEntityService.findMediaEntityById(mediaEntityId) + } } Index: trunk/grails-app/controllers/com/lemans/UrlMappings.groovy =================================================================== diff -u -r9916 -r10001 --- trunk/grails-app/controllers/com/lemans/UrlMappings.groovy (.../UrlMappings.groovy) (revision 9916) +++ trunk/grails-app/controllers/com/lemans/UrlMappings.groovy (.../UrlMappings.groovy) (revision 10001) @@ -102,6 +102,10 @@ 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'] } Index: trunk/src/integration-test/groovy/com/lemans/ds/media/MediaEntityFunctionalSpec.groovy =================================================================== diff -u -r8959 -r10001 --- trunk/src/integration-test/groovy/com/lemans/ds/media/MediaEntityFunctionalSpec.groovy (.../MediaEntityFunctionalSpec.groovy) (revision 8959) +++ trunk/src/integration-test/groovy/com/lemans/ds/media/MediaEntityFunctionalSpec.groovy (.../MediaEntityFunctionalSpec.groovy) (revision 10001) @@ -6,7 +6,7 @@ @Override String resourceName() { 'entity' } - final static int ALL_COLUMNS_SIZE = 16 + final static int ALL_COLUMNS_SIZE = 17 def 'can get all MediaEntity'() { given: @@ -21,4 +21,19 @@ apiPaginated() > 10 payload.results[0].size() == ALL_COLUMNS_SIZE } + + def 'can update mediaEntity'() { + given: + int mediaId = 2 + //String entityId = '0014218' + Map input = [description: 'test'] + path([media: mediaId], '0014218') + ok() + + when: + put(input) + + then: + payload + } }