1+ 'use strict' ;
2+ var output = require ( '../output' ) ;
3+ var applyMaps = require ( './shared/apply-maps' ) ;
4+ var _ = require ( 'lodash' ) ;
5+ var addModel = require ( '../swagger/add-model' ) ;
6+ var config = require ( 'nconf' ) ;
7+
8+ module . exports = function addDeleteByIdRoute ( router , crudMiddleware , maps ) {
9+ router . delete ( '/:' + router . metadata . identifierName , getSteps ( router , crudMiddleware , maps ) )
10+ . describe ( router . metadata . getByIdDescription || description ( router . metadata ) ) ;
11+ return router ;
12+ } ;
13+
14+ function getSteps ( router , crudMiddleware , maps ) {
15+ var steps = {
16+ findByIdentifier : crudMiddleware . findByIdentifier ,
17+ deleteByIdentifier : crudMiddleware . deleteByIdentifier ,
18+ writeHistoryItem : crudMiddleware . writeHistoryItem ,
19+ sendOutput : output . sendNoContent
20+ } ;
21+ return applyMaps ( maps , steps ) ;
22+ }
23+
24+ function description ( metadata ) {
25+ addModel ( metadata . schemas . output ) ;
26+ var correlationIdOptions = config . get ( 'logging' ) . correlationId ;
27+ return {
28+ security : true ,
29+ summary : "Removes " + metadata . aOrAn + " " + metadata . title + " By " + _ . startCase ( metadata . identifierName ) + "." ,
30+ tags : [ metadata . tag . name ] ,
31+ parameters : [
32+ {
33+ name : metadata . identifierName . toLowerCase ( ) ,
34+ description : "The field to uniquely identify this " + metadata . title . toLowerCase ( ) + "." ,
35+ required : true ,
36+ in : "path" ,
37+ type : "string"
38+ }
39+ ] ,
40+ common : {
41+ responses : [ "500" , "400" , "401" , "404" ] ,
42+ parameters : {
43+ header : [ correlationIdOptions . reqHeader ]
44+ }
45+ } ,
46+ responses : {
47+ "204" : {
48+ description : "Shows that the delete request was successfully carried out" ,
49+ commonHeaders : [ correlationIdOptions . resHeader ]
50+ }
51+ }
52+ } ;
53+ }
0 commit comments