Changes between Version 2 and Version 3 of AdvancedApplicationDevelopment


Ignore:
Timestamp:
09/21/26 20:48:03 (5 days ago)
Author:
192063
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedApplicationDevelopment

    v2 v3  
    22
    33== Трансакции ==
     4Зошто ни се потребни трансакции?
     5При креирање на корисници, како што се благајник, родител, наставник, записот мора да биде запишан прво во наткласата Корисник а потоа во поткласите.
     6Овој процес мора да биде конзистентен и да се изврши без прекини.
     7Затоа при креирање на овие корисници ја користиме анотацијата **@Transactional**.
     8Оваа анотација се користи за да му се каже на Spring Boot автоматски да се грижи за COMMIT и ROLLBACK кој може да се случи доколку настане некоја грешка.
    49
    510= Креирање на благајник =
     11
     12
     13{{{
     14    @Value("${wallet.receiver}")
     15    private String metamusk_adresa;
     16    @Override
     17    @Transactional
     18    public BlagajnikResponseDTO createBlagajnik(BlagajnikRequestDTO blagajnikRequestDTO) {
     19        System.out.println("Пристигнат DTO: " + blagajnikRequestDTO);
     20       if(blagajnikRequestDTO.getE_posta() == null || blagajnikRequestDTO.getE_posta().isEmpty() ||
     21          blagajnikRequestDTO.getLozinka() == null || blagajnikRequestDTO.getLozinka().isEmpty() ||
     22               blagajnikRequestDTO.getIme() == null || blagajnikRequestDTO.getIme().isEmpty() ||
     23               blagajnikRequestDTO.getPrezime() == null || blagajnikRequestDTO.getPrezime().isEmpty() ||
     24                blagajnikRequestDTO.getPol() == null || blagajnikRequestDTO.getPol().isEmpty() ||
     25               blagajnikRequestDTO.getAdresa() == null || blagajnikRequestDTO.getAdresa().isEmpty() ||
     26               blagajnikRequestDTO.getKreiranOdId() == null
     27       ){
     28           throw new IllegalArgumentException("invalid blagajnik data");
     29       }
     30        String encodedPass = passwordEncoder.encode( blagajnikRequestDTO.getLozinka());
     31
     32       this.direktorAdminService.getDirektorAdminById(blagajnikRequestDTO.getKreiranOdId());
     33        KorisnikRequestDTO korisnikDto = new KorisnikRequestDTO(
     34                blagajnikRequestDTO.getE_posta(),
     35                encodedPass,
     36                blagajnikRequestDTO.getIme(),
     37                blagajnikRequestDTO.getPrezime(),
     38                blagajnikRequestDTO.getPol(),
     39                blagajnikRequestDTO.getAdresa(),
     40                blagajnikRequestDTO.getKreiranOdId()
     41        );
     42        KorisnikResponseDTO korisnik = korisnikService.createKorisnik(korisnikDto);
     43        UUID korisnikId = korisnik.getId();
     44
     45
     46        this.blagajnikRepository.createBlagajnik(korisnikId,metamusk_adresa, true);
     47
     48        BlagajnikResponseDTO blagajnikResponseDTO = this.getBlagajnikById(korisnikId);
     49       return blagajnikResponseDTO;
     50
     51    }
     52}}}
     53
    654= Креирање на наставник =
     55
     56
     57{{{
     58    @Override
     59    @Transactional
     60    public NastavnikResponseDTO createNastavnik(NastavnikRequestDTO dto) {
     61
     62        if (dto.getE_posta() == null || dto.getE_posta().isEmpty() ||
     63                dto.getLozinka() == null || dto.getLozinka().isEmpty() ||
     64                dto.getIme() == null || dto.getIme().isEmpty() ||
     65                dto.getPrezime() == null || dto.getPrezime().isEmpty() ||
     66                dto.getPol() == null || dto.getPol().isEmpty() ||
     67                dto.getAdresa() == null || dto.getAdresa().isEmpty() ||
     68                dto.getKreiranOdId() == null) {
     69
     70            throw new IllegalArgumentException("Invalid nastavnik data");
     71        }
     72
     73
     74        String encodedPass = passwordEncoder.encode( dto.getLozinka());
     75
     76
     77        direktorAdminService.getDirektorAdminById(dto.getKreiranOdId());
     78        KorisnikRequestDTO korisnikDto = new KorisnikRequestDTO(
     79                dto.getE_posta(),
     80                encodedPass,
     81                dto.getIme(),
     82                dto.getPrezime(),
     83                dto.getPol(),
     84                dto.getAdresa(),
     85                dto.getKreiranOdId()
     86        );
     87
     88        KorisnikResponseDTO korisnik = korisnikService.createKorisnik(korisnikDto);
     89
     90        UUID korisnikId = korisnik.getId();
     91
     92        this.nastavnikRepository.createNastavnik(korisnikId, true);
     93
     94        NastavnikResponseDTO nastavnikResponseDTO = this.getNastavnikById(korisnikId);
     95        return nastavnikResponseDTO;
     96    }
     97}}}
     98
    799= Креирање на родител=
     100
     101
     102{{{
     103
     104    @Override
     105    @Transactional
     106    public RoditelResponseDTO createRoditel(RoditelRequestDTO roditelRequestDTO) {
     107
     108        String encodedPass = passwordEncoder.encode( roditelRequestDTO.getLozinka());
     109        this.direktorAdminService.getDirektorAdminById(roditelRequestDTO.getKreiranOdId());
     110
     111        KorisnikRequestDTO korisnikDto = new KorisnikRequestDTO(
     112                roditelRequestDTO.getE_posta(),
     113                encodedPass,
     114                roditelRequestDTO.getIme(),
     115                roditelRequestDTO.getPrezime(),
     116                roditelRequestDTO.getPol(),
     117                roditelRequestDTO.getAdresa(),
     118                roditelRequestDTO.getKreiranOdId()
     119
     120        );
     121        KorisnikResponseDTO korisnik = korisnikService.createKorisnik(korisnikDto);
     122        UUID korisnikId = korisnik.getId();
     123
     124        String metamusk = "SET LATER";
     125        this.roditelRepository.createRoditel(korisnikId,true,metamusk);
     126
     127      RoditelResponseDTO roditelResponseDTO = this.roditelRepository.findRoditelById(korisnikId);
     128       return roditelResponseDTO;
     129    }
     130}}}
     131
    8132
    9133= Внесување на усна оценка =