@@ -18,6 +18,10 @@ const storage = multer.diskStorage({
1818 } ,
1919} ) ;
2020const upload = multer ( { storage : storage } ) ;
21+ const labelSchema = Joi . array ( )
22+ . items ( Joi . string ( ) . trim ( ) . required ( ) )
23+ . min ( 1 )
24+ . required ( ) ;
2125
2226export default ( app : Router ) => {
2327 app . use ( '/envs' , route ) ;
@@ -44,6 +48,7 @@ export default (app: Router) => {
4448 . required ( )
4549 . pattern ( / ^ [ a - z A - Z _ ] [ 0 - 9 a - z A - Z _ ] * $ / ) ,
4650 remarks : Joi . string ( ) . optional ( ) . allow ( '' ) ,
51+ labels : Joi . array ( ) . items ( Joi . string ( ) . trim ( ) ) . optional ( ) ,
4752 } ) ,
4853 ) ,
4954 } ) ,
@@ -70,6 +75,7 @@ export default (app: Router) => {
7075 name : Joi . string ( ) . required ( ) ,
7176 remarks : Joi . string ( ) . optional ( ) . allow ( '' ) . allow ( null ) ,
7277 id : Joi . number ( ) . required ( ) ,
78+ labels : Joi . array ( ) . items ( Joi . string ( ) . trim ( ) ) . optional ( ) ,
7379 } ) ,
7480 } ) ,
7581 async ( req : Request , res : Response , next : NextFunction ) => {
@@ -230,6 +236,44 @@ export default (app: Router) => {
230236 } ,
231237 ) ;
232238
239+ route . post (
240+ '/labels' ,
241+ celebrate ( {
242+ body : Joi . object ( {
243+ ids : Joi . array ( ) . items ( Joi . number ( ) . required ( ) ) . min ( 1 ) . required ( ) ,
244+ labels : labelSchema ,
245+ } ) ,
246+ } ) ,
247+ async ( req : Request , res : Response , next : NextFunction ) => {
248+ try {
249+ const envService = Container . get ( EnvService ) ;
250+ const data = await envService . addLabels ( req . body . ids , req . body . labels ) ;
251+ return res . send ( { code : 200 , data } ) ;
252+ } catch ( e ) {
253+ return next ( e ) ;
254+ }
255+ } ,
256+ ) ;
257+
258+ route . delete (
259+ '/labels' ,
260+ celebrate ( {
261+ body : Joi . object ( {
262+ ids : Joi . array ( ) . items ( Joi . number ( ) . required ( ) ) . min ( 1 ) . required ( ) ,
263+ labels : labelSchema ,
264+ } ) ,
265+ } ) ,
266+ async ( req : Request , res : Response , next : NextFunction ) => {
267+ try {
268+ const envService = Container . get ( EnvService ) ;
269+ const data = await envService . removeLabels ( req . body . ids , req . body . labels ) ;
270+ return res . send ( { code : 200 , data } ) ;
271+ } catch ( e ) {
272+ return next ( e ) ;
273+ }
274+ } ,
275+ ) ;
276+
233277 route . post (
234278 '/upload' ,
235279 upload . single ( 'env' ) ,
@@ -248,6 +292,7 @@ export default (app: Router) => {
248292 name : x . name ,
249293 value : x . value ,
250294 remarks : x . remarks ,
295+ labels : x . labels ,
251296 } ) ) ,
252297 ) ;
253298 return res . send ( { code : 200 , data : result } ) ;
0 commit comments