#18 Szlifujemy backend cz.2

Część druga dłubania w backendzie, dzisiaj drobne lecz istotne zmiany związane z bazą danych i lekkie dłubanie w Angularze

Bez dalszego, zbędnego owijania…

Zmiany w naszej nadpisanej metodzie w klasie ImageServiceImpl:

    @Override
    public void saveImage(Image image)
    {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        String username = authentication.getName();
        image.setUserId(username);

        imageRepository.save(image);

    }

Teraz oprócz zwykłego zapisu obiektu „image” dodajemy również do bazy informację o tym do jakiego zalogowanego użytkownika należy obrazek. Posiłkujemy się przy tym Spring Security, w końcu to właśnie on odpowiada za logowanie i przechowuje informację o tym jak nazywa się użytkownik zalogowany itd. Korzystamy z settera aby po prostu dopisać tą informację.

Oczywiście w klasie Image jak i w bazie danych pojawiła się dodatkowa kolumna odpowiadająca za przechowanie informacji o nicku użytkownika.

Jeśli chodzi o AngularJS to została dodana funkcja, która „komunikuje się” z naszym Controllem – czyli wysyła mu informacje o nazwie obrazka.

    $scope.addNewImage = function(image) {

        var Indata = {'url': $scope.url};
        $http.post("/addImage", Indata);

    }}

a nasz Controller wygląda tak:

    @RequestMapping(value = "/addImage", method = RequestMethod.POST)
    public @ResponseBody void addImage(@RequestBody Image image) {imageService.saveImage(image); }

W formacie JSON dane trafiają doControllera gdzie dalej są przekazywane do metody i wszystko jest zapisywane do bazy danych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *