@@ -675,25 +675,45 @@ class Extractions @Inject()(
675675 }
676676
677677 def createExtractorsLabel () = ServerAdminAction (parse.json) { implicit request =>
678- val name = (request.body \ " name" ).as[String ]
679- val category = (request.body \ " category" ).asOpt[String ]
680- val assignedExtractors = (request.body \ " extractors" ).as[List [String ]]
678+ // Fetch parameters from request body
679+ val (name, category, assignedExtractors) = parseExtractorsLabel(request)
680+
681+ // Perform validation
682+ validateExtractorsLabel(name, category, assignedExtractors)
681683
684+ // Create new label
682685 extractors.createExtractorsLabel(name, category, assignedExtractors) match {
683- case Some (lbl) => { Ok (Json .toJson(lbl)) }
684- case None => { BadRequest (" Failed to create new label" ) }
686+ case Some (lbl) => Ok (Json .toJson(lbl))
687+ case None => BadRequest (" Failed to create new label" )
685688 }
686689 }
687690
688691 def updateExtractorsLabel (id : UUID ) = ServerAdminAction (parse.json) { implicit request =>
692+ // Fetch parameters from request body
693+ val (name, category, assignedExtractors) = parseExtractorsLabel(request)
694+
695+ // Perform validation
696+ validateExtractorsLabel(name, category, assignedExtractors)
697+
698+ // Update existing label
699+ val label = ExtractorsLabel (id, name, category, assignedExtractors)
700+ extractors.updateExtractorsLabel(label) match {
701+ case Some (lbl) => Ok (Json .toJson(lbl))
702+ case None => BadRequest (" Failed to update existing label" )
703+ }
704+ }
705+
706+ def parseExtractorsLabel (request : UserRequest [JsValue ]): (String , Option [String ], List [String ]) = {
689707 val name = (request.body \ " name" ).as[String ]
690708 val category = (request.body \ " category" ).asOpt[String ]
691709 val assignedExtractors = (request.body \ " extractors" ).as[List [String ]]
692710
693- val label = ExtractorsLabel (id, name, category, assignedExtractors)
694- extractors.updateExtractorsLabel(label) match {
695- case Some (lbl) => { Ok (Json .toJson(lbl)) }
696- case None => { BadRequest (" Failed to update existing label" ) }
711+ (name, category, assignedExtractors)
712+ }
713+
714+ def validateExtractorsLabel (name : String , category : Option [String ], assignedExtractors : List [String ]): Unit = {
715+ if (name.isEmpty) {
716+ BadRequest (" Label Name cannot be empty" )
697717 }
698718 }
699719}
0 commit comments