search code barre

This commit is contained in:
mepiphana2023
2025-07-16 16:23:44 +02:00
parent 470811adc8
commit e19b32e4bf
4 changed files with 97 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
package fr.eni.demo.bll;
import fr.eni.demo.bo.User;
import java.util.Optional;
import java.util.List;
public interface UserService {
void addUser(User user);
Optional<User> findByUsername(String username);
List<User> findAll();
}

View File

@@ -0,0 +1,39 @@
package fr.eni.demo.bll;
import fr.eni.demo.bo.User;
import fr.eni.demo.dal.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
@Autowired
public UserServiceImpl(UserRepository userRepository, PasswordEncoder passwordEncoder) {
this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder;
}
@Override
public void addUser(User user) {
user.setPassword(passwordEncoder.encode(user.getPassword()));
userRepository.save(user);
}
@Override
public Optional<User> findByUsername(String username) {
return userRepository.findByUsername(username);
}
@Override
public List<User> findAll() {
return userRepository.findAll();
}
}

View File

@@ -0,0 +1,35 @@
package fr.eni.demo.controller;
import fr.eni.demo.bll.UserService;
import fr.eni.demo.bo.User;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
userService.addUser(user);
return ResponseEntity.ok(user);
}
@GetMapping
public ResponseEntity<List<User>> getAllUsers() {
return ResponseEntity.ok(userService.findAll());
}
@GetMapping("/{username}")
public ResponseEntity<User> getUserByUsername(@PathVariable String username) {
return userService.findByUsername(username)
.map(ResponseEntity::ok)
.orElse(ResponseEntity.notFound().build());
}
}

View File

@@ -0,0 +1,12 @@
package fr.eni.demo.dal;
import fr.eni.demo.bo.User;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface UserRepository extends MongoRepository<User, String> {
Optional<User> findByUsername(String username);
}