diff --git a/server/web_app/src/Controller/ItemController.php b/server/web_app/src/Controller/ItemController.php
index ad855bfbfab543cfe3c7e9101da35ce4d5392a9d..c113d3cf5569c681e3dd9499d9e7d581c64862ca 100644
--- a/server/web_app/src/Controller/ItemController.php
+++ b/server/web_app/src/Controller/ItemController.php
@@ -2,17 +2,85 @@
 
 namespace App\Controller;
 
+use App\Repository\ItemRepository;
 use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
+use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\JsonResponse;
 use Symfony\Component\Routing\Attribute\Route;
 
+use Doctrine\ORM\EntityManagerInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
+use Symfony\Component\Validator\Validator\ValidatorInterface;
+
+#[Route('/items')]
 final class ItemController extends AbstractController
 {
-    #[Route('/item', name: 'app_item')]
-    public function index(): JsonResponse
+    private EntityManagerInterface $entityManager;
+    private ItemRepository $itemRepository;
+    private UserPasswordHasherInterface $passwordHasher;
+    private ValidatorInterface $validator;
+    public function __construct(
+        EntityManagerInterface $entityManager,
+        ItemRepository $itemRepository,
+        UserPasswordHasherInterface $passwordHasher,
+        ValidatorInterface $validator
+    ) {
+        $this->entityManager = $entityManager;
+        $this->itemRepository = $itemRepository;
+        $this->passwordHasher = $passwordHasher;
+        $this->validator = $validator;
+    }
+
+    #[Route('', methods: ['GET'])]
+    public function getAllItems(): JsonResponse
+    {
+        $items = $this->itemRepository->findAllItems();
+
+        if (!$items) {
+            return new JsonResponse(['error' => 'Item not found'], Response::HTTP_NOT_FOUND);
+        }
+
+        $itemArray = array_map(fn($item) => 
+        [
+            'id' => $item->getId(),
+            'wishList' => $item->getWishList(),
+            'title' => $item->getTitle(),
+            'description' =>$item->getDescription(),
+            'price' =>$item->getPrice(),
+            'purchaseUrl' =>$item->getPurchaseUrl(),
+            'createdAt' => $item->getCreatedAt()    
+        ]
+        , $items);
+        
+        return $this->json([
+            'items' => $itemArray,
+            'path' => 'src/Controller/ItemController.php',
+        ]);
+    }
+
+    #[Route('/{itemId}', methods: ['GET'])]
+    public function getItemsById($itemId): JsonResponse
     {
+        $item = $this->itemRepository->findOneById($itemId);
+
+        if (!$item) {
+            return new JsonResponse(['error' => 'Item not found'], Response::HTTP_NOT_FOUND);
+        }
+
+        $itemDTO = [
+            'id' => $item->getId(),
+            'wishList' => $item->getWishList(),
+            'title' => $item->getTitle(),
+            'description' =>$item->getDescription(),
+            'price' =>$item->getPrice(),
+            'purchaseUrl' =>$item->getPurchaseUrl(),
+            'isBought' =>$item->isBought(),
+            'createdAt' => $item->getCreatedAt()    
+        ];
+
         return $this->json([
-            'message' => 'Welcome to your new controller!',
+            'user' => $itemDTO,
             'path' => 'src/Controller/ItemController.php',
         ]);
     }
diff --git a/server/web_app/src/Controller/UserController.php b/server/web_app/src/Controller/UserController.php
index 170923b8835dbccdf89745766aa62f985e40d0a6..108b82818e624405c1c4aa0c9d65e262850b4505 100644
--- a/server/web_app/src/Controller/UserController.php
+++ b/server/web_app/src/Controller/UserController.php
@@ -102,7 +102,7 @@ final class UserController extends AbstractController implements UserControllerI
 
         return $this->json([
             'users' => $userArray,
-            'path' => 'src/Controller/ItemController.php',
+            'path' => 'src/Controller/UserController.php',
         ]);
     }
 
@@ -123,11 +123,11 @@ final class UserController extends AbstractController implements UserControllerI
         ];
         return $this->json([
             'user' => $userDTO,
-            'path' => 'src/Controller/ItemController.php',
+            'path' => 'src/Controller/UserController.php',
         ]);
     }
 
-    #[Route('/{userId}', methods: ['PUT'])]
+    #[Route('/{userId}', methods: ['PATCH'])]
     public function updateUser(int $userId, Request $req): JsonResponse
     {   
         $user = $this->userRepository->findOneById($userId);
@@ -196,7 +196,7 @@ final class UserController extends AbstractController implements UserControllerI
                 'isBlocked' => $user->isBlocked(),
                 'role' => $user->getRole()->value,
             ],
-            'path' => 'src/Controller/ItemController.php'
+            'path' => 'src/Controller/UserController.php'
         ], Response::HTTP_OK);
     }
 
@@ -214,7 +214,7 @@ final class UserController extends AbstractController implements UserControllerI
 
         return $this->json([
             'message' => 'User deleted successfully',
-            'path' => 'src/Controller/ItemController.php',
+            'path' => 'src/Controller/UserController.php',
         ]);
     }
 
@@ -223,7 +223,7 @@ final class UserController extends AbstractController implements UserControllerI
     {
         return $this->json([
             'message' => 'Welcome to your new controller!',
-            'path' => 'src/Controller/ItemController.php',
+            'path' => 'src/Controller/UserController.php',
         ]);
     }
 
@@ -232,7 +232,7 @@ final class UserController extends AbstractController implements UserControllerI
     {
         return $this->json([
             'message' => 'Welcome to your new controller!',
-            'path' => 'src/Controller/ItemController.php',
+            'path' => 'src/Controller/UserController.php',
         ]);
     }
 }
diff --git a/server/web_app/src/Repository/ItemRepository.php b/server/web_app/src/Repository/ItemRepository.php
index 229f40652e92f36659747e345c2569cb626b2aa2..e148efaa59c7ec831866bc6718fbac9f53672c68 100644
--- a/server/web_app/src/Repository/ItemRepository.php
+++ b/server/web_app/src/Repository/ItemRepository.php
@@ -16,28 +16,23 @@ class ItemRepository extends ServiceEntityRepository
         parent::__construct($registry, Item::class);
     }
 
-    //    /**
-    //     * @return Item[] Returns an array of Item objects
-    //     */
-    //    public function findByExampleField($value): array
-    //    {
-    //        return $this->createQueryBuilder('i')
-    //            ->andWhere('i.exampleField = :val')
-    //            ->setParameter('val', $value)
-    //            ->orderBy('i.id', 'ASC')
-    //            ->setMaxResults(10)
-    //            ->getQuery()
-    //            ->getResult()
-    //        ;
-    //    }
+    public function findAllItems (): array {
+        return $this->findAll();
+    }
+
+    // Custom query method to find active users
+    public function findByStatus($isBought): array
+    {
+        return $this->createQueryBuilder('u')
+            ->andWhere('u.isBought = :isBought')
+            ->setParameter('isBought', $isBought)
+            ->getQuery()
+            ->getResult();
+    }
 
-    //    public function findOneBySomeField($value): ?Item
-    //    {
-    //        return $this->createQueryBuilder('i')
-    //            ->andWhere('i.exampleField = :val')
-    //            ->setParameter('val', $value)
-    //            ->getQuery()
-    //            ->getOneOrNullResult()
-    //        ;
-    //    }
+    // Custom query method to find a user by id
+    public function findOneById(int $id): ?Item
+    {
+        return $this->findOneBy(['id' => $id]);
+    }
 }