get('flag'), $container->get('flaglists'), $container->get('renderer') ); } /** * Constructs a new MaterioFlagController object. */ public function __construct( FlagServiceInterface $flag, FlagListsServiceInterface $flag_lists, RendererInterface $renderer ) { parent::__construct($flag, $flag_lists, $renderer); } public function flaglistentity(Request $request) { $post_data = json_decode( $request->getContent(),TRUE); $flagid = $post_data['flagid']; $uuid = $post_data['uuid']; $flagcollid = $post_data['flagcollid']; // $flagcoll = $this->flagListsService->getFlaggingCollectionById($flagcollid); // $flag = $flagcoll->getRelatedFlag(); $flag = $this->flagService->getFlagById($flagid); $node = \Drupal::service('entity.repository')->loadEntityByUuid('node', $uuid); $nid = $node->id(); // call the parent flag function $this->flag($flag, $nid, $flagcollid); // // OR rewrite it entirely // $entity = $this->flagService->getFlaggableById($flag, $nid); // // flag // $this->flagService->flag($flag, $entity); // // Create the flag list item. // // $actionLinkHelper = new ActionLinkHelper($this->flagListsService); // // $actionLinkHelper->flagHelper($flag, $nid, $flagcoll); // $flag_list_item = FlagListItem::create([ // 'entity_id' => $nid, // 'type' => $flag->getFlaggableEntityTypeId(), // 'baseflag' => $flagid, // 'flag_list' => $flagcollid, // 'name' => $flagcoll->getName() . ' ' . $nid, // ]); // $flag_list_item->save(); $data = [ 'flag' => $flag->toArray(), 'flagid' => $flagid, 'entity_id' => $nid, 'entity_uuid' => $uuid, 'flagcollid' => $flagcollid, // 'post_data' => $post_data, // 'flaggableEntityTypeId' => $flag->getFlaggableEntityTypeId(), // 'entity_title' => $entity->get('title')->value, // 'flag_list_item' => $flag_list_item->getName(), ]; return new JsonResponse($data); } public function unFlaglistentity(Request $request) { $post_data = json_decode( $request->getContent(),TRUE); $flagid = $post_data['flagid']; $uuid = $post_data['uuid']; $flagcollid = $post_data['flagcollid']; // get flag $flag = $this->flagService->getFlagById($flagid); // get the nid from uuid $node = \Drupal::service('entity.repository')->loadEntityByUuid('node', $uuid); $nid = $node->id(); // call the parent flag function $this->unflag($flag, $nid, $flagcollid); // response $data = [ 'flag' => $flag->toArray(), 'flagid' => $flagid, 'entity_id' => $nid, 'entity_uuid' => $uuid, 'flagcollid' => $flagcollid, ]; return new JsonResponse($data); } }