Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class DemoApplication {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package vezbe.demo.configuration;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class CorsRunner implements WebMvcConfigurer {

@Override
public void addCorsMappings(CorsRegistry registry){
registry.addMapping("/**")
.allowCredentials(true)
// Which primitive fields to release
.allowedOriginPatterns("*")
.allowedMethods(new String[]{
"GET", "POST", "PUT", "DELETE"})
.allowedHeaders("*");
}

}


Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,13 @@ public boolean instantiate(){

tipKupcaRepository.saveAll(List.of(bronzani, srebrni, zlatni, platinum, dijamant));

Artikal artikal1 = new Artikal("naziv1", 123, TipArtikla.Jelo, 100, "opis1");
Artikal artikal1 = new Artikal("pica mala", 250, TipArtikla.Jelo, 100, "pica cipriciossa, 23cm, pelat, sir, šunka, šampinjoni ");
artikal1.setSlika("/src/main/resources/static/images/kapricoza.jpg");

artikalRepository.save(artikal1);
Artikal artikal2 = new Artikal("naziv2", 321, TipArtikla.Pice, 210, "opis2");
Artikal artikal2 = new Artikal("pica normalna", 520, TipArtikla.Jelo, 210, "pica cipriciossa, 35cm, pelat, sir, šunka, šampinjoni");
artikalRepository.save(artikal2);
Artikal artikal3 = new Artikal("naziv3", 500, TipArtikla.Jelo, 10, "opis3");
Artikal artikal3 = new Artikal("pica velika", 900, TipArtikla.Jelo, 100, "pica cipriciossa, 50cm, pelat, sir, šunka, šampinjoni");
artikalRepository.save(artikal3);
Artikal artikal4 = new Artikal("naziv4", 123, TipArtikla.Pice, 100, "opis4");
artikalRepository.save(artikal4);
Expand All @@ -95,13 +96,13 @@ public boolean instantiate(){
Artikal artikal11= new Artikal("naziv11", 500, TipArtikla.Jelo, 10, "opis11");
artikalRepository.save(artikal11);

StavkaPorudzbine stavkaPorudzbine1 = new StavkaPorudzbine(artikal1,100);
StavkaPorudzbine stavkaPorudzbine2 = new StavkaPorudzbine(artikal2,100);
StavkaPorudzbine stavkaPorudzbine3 = new StavkaPorudzbine(artikal3,100);
StavkaPorudzbine stavkaPorudzbine4 = new StavkaPorudzbine(artikal4,100);
StavkaPorudzbine stavkaPorudzbine5 = new StavkaPorudzbine(artikal5,100);
StavkaPorudzbine stavkaPorudzbine6 = new StavkaPorudzbine(artikal6,100);
StavkaPorudzbine stavkaPorudzbine7 = new StavkaPorudzbine(artikal1,100);
StavkaPorudzbine stavkaPorudzbine1 = new StavkaPorudzbine(artikal1,1);
StavkaPorudzbine stavkaPorudzbine2 = new StavkaPorudzbine(artikal2,2);
StavkaPorudzbine stavkaPorudzbine3 = new StavkaPorudzbine(artikal3,3);
StavkaPorudzbine stavkaPorudzbine4 = new StavkaPorudzbine(artikal4,4);
StavkaPorudzbine stavkaPorudzbine5 = new StavkaPorudzbine(artikal5,5);
StavkaPorudzbine stavkaPorudzbine6 = new StavkaPorudzbine(artikal6,6);
StavkaPorudzbine stavkaPorudzbine7 = new StavkaPorudzbine(artikal1,7);
/* StavkaPorudzbine stavkaPorudzbine8 = new StavkaPorudzbine(artikal8,100);
StavkaPorudzbine stavkaPorudzbine9 = new StavkaPorudzbine(artikal9,100);
StavkaPorudzbine stavkaPorudzbine10 = new StavkaPorudzbine(artikal10,100);
Expand Down Expand Up @@ -180,18 +181,20 @@ public boolean instantiate(){
Kupac kupac2= new Kupac("korisnickoIme2", "lozinka2", "Predrag", "Nenadic",Pol.muski,new Date(100, Calendar.JANUARY, 10), novaListaPorudzbina, 1100, srebrni);
kupacRepository.save(kupac2);


Porudzbina porudzbina2 = new Porudzbina();
porudzbina2.setPoruceniArtikli(lista_artikala2);
porudzbina2.setRestoran(restoran);
porudzbina2.setDatumIVreme(date1);
porudzbina2.setCena(10000);
porudzbina2.setCena(2000);
porudzbina2.setKupac(kupac2);
porudzbina2.setStatus(StatusPorudzbine.UPripremi);
porudzbina2.setStatus(StatusPorudzbine.Obrada);
porudzbinaRepository.save(porudzbina2);
kupacRepository.save(kupac2);
kupac2.getListaPorudzbina().add(porudzbina2);
Porudzbina porudzbina = new Porudzbina( lista_artikala, restoran, date1 , 123000,kupac2, StatusPorudzbine.UPripremi);
Porudzbina porudzbina = new Porudzbina( lista_artikala, restoran, date1 , 5000,kupac2, StatusPorudzbine.CekaDostavljača);
porudzbinaRepository.save(porudzbina);

kupacRepository.save(kupac2);
Date date = new Date();
Menadzer menadzer = new Menadzer("menadzer123", "lozinka", "Milos", "Subotic", Pol.muski,date , restoran);
menadzerRepository.save(menadzer);
Expand Down Expand Up @@ -226,6 +229,9 @@ public boolean instantiate(){
komentarRepository.save(komentar);
Komentar komentar2 = new Komentar(kupac, restoran2, "Me likey, very nice", 5);
komentarRepository.save(komentar2);

Korisnik admin = new Korisnik("admin", "sifra", "Admin", "Adminovski" , Pol.muski,new Date(101, Calendar.SEPTEMBER, 10), Uloga.Admin);
korisnikRepository.save(admin);
/*Department department1 = new Department("first department");
Department department2 = new Department("second department");

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package vezbe.demo.configuration;


import java.nio.file.Path;
import java.nio.file.Paths;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MvcConfig implements WebMvcConfigurer {


@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
exposeDirectory("images", registry);
}

private void exposeDirectory(String dirName, ResourceHandlerRegistry registry) {
Path uploadDir = Paths.get(dirName);
//String uploadPath = uploadDir.toFile().getAbsolutePath();
String uploadPath = uploadDir.toFile().getAbsolutePath() + "Nadogradnja-demoa/src/main/resources/static/images";
if (dirName.startsWith("../")) dirName = dirName.replace("../", "");

registry.addResourceHandler("/" + dirName + "/**").addResourceLocations("file:/"+ uploadPath + "/");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package vezbe.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import vezbe.demo.dto.ArtikalDto;
import vezbe.demo.model.*;
import vezbe.demo.service.ArtikalService;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Set;

@RestController
public class ArtikalRestController {

@Autowired
private ArtikalService artikalService;



}
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package vezbe.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import vezbe.demo.dto.DostavljacDto;
import vezbe.demo.dto.MenadzerDto;
import vezbe.demo.model.*;
import vezbe.demo.service.DostavljacService;
import vezbe.demo.service.KorisnikService;
import vezbe.demo.service.MenadzerService;
import javax.servlet.http.HttpSession;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Set;

@RestController
@RequestMapping(value = "/api/")
@CrossOrigin(origins = "http://localhost:8080")
public class DostavljacRestController {

private final DostavljacService dostavljacService;

@Autowired
public DostavljacRestController(DostavljacService dostavljacService) {
this.dostavljacService = dostavljacService;
}



@PostMapping("kreiraj-dostavljaca")
public ResponseEntity<String> kreirajDostavljaca(@RequestBody DostavljacDto dostavljacDto, HttpSession session) throws ParseException {
Korisnik loggedKorisnik = (Korisnik) session.getAttribute("logovaniKorsinik");
if (loggedKorisnik == null){
return new ResponseEntity<>("Forbidden", HttpStatus.OK);
}
if(loggedKorisnik.getUloga()!= Uloga.Admin){
return new ResponseEntity<>("Nemate dozvolu za ovu funkciju", HttpStatus.OK);
}
String sDate1=dostavljacDto.getDatumRodjenja();
Date date1= null;
date1 = new SimpleDateFormat("yyyy-MM-dd").parse(sDate1);

Pol pol = Pol.valueOf(dostavljacDto.getPol());

Dostavljac dostavljac = new Dostavljac(dostavljacDto.getKorisnickoIme(), dostavljacDto.getLozinka(), dostavljacDto.getIme(), dostavljacDto.getPrezime(),pol, date1);
this.dostavljacService.save(dostavljac);

return new ResponseEntity<>("", HttpStatus.OK);

}

@GetMapping("/api/dostavljac/pregled-porudzbina")
public ResponseEntity<Set<Porudzbina>> pregledPorudzbina(HttpSession session) {

Korisnik loggedKorisnik = (Korisnik) session.getAttribute("logovaniKorsinik");
if (loggedKorisnik.getUloga() != Uloga.Dostavljac ) {//Da li treba dodati i mogucnost da admin moze da pristupa ovom edpointu
return new ResponseEntity("Nemate pristupa ovim podacima", HttpStatus.BAD_REQUEST);
}



return ResponseEntity.ok(dostavljacService.findAllById(loggedKorisnik.getId()));

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package vezbe.demo.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import vezbe.demo.dto.KorisnikDto;
import vezbe.demo.dto.LoginDto;
import vezbe.demo.model.*;
import vezbe.demo.service.KorisnikService;
import vezbe.demo.service.RestoranService;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping(value = "/api/")
@CrossOrigin(origins = "http://localhost:8080")
public class KorisnikRestController {
private final KorisnikService korisnikService;

@Autowired
public KorisnikRestController(KorisnikService korisnikService) {
this.korisnikService = korisnikService;
}


@PostMapping(
value="login",
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<LoginDto> login(@RequestBody KorisnikDto loginDto, HttpSession session) throws Exception{
if(loginDto.getKorisnickoIme().isEmpty() || loginDto.getLozinka().isEmpty()){
return new ResponseEntity<>(new LoginDto(), HttpStatus.OK);
}
Korisnik loggedKorisnik = korisnikService.login(loginDto.getKorisnickoIme(), loginDto.getLozinka());
if (loggedKorisnik == null){
return new ResponseEntity<>(new LoginDto(), HttpStatus.OK);}
session.setAttribute("logovaniKorsinik", loggedKorisnik);

KorisnikDto korisnikDto= new KorisnikDto(loggedKorisnik.getKorisnickoIme(), loggedKorisnik.getLozinka(), loggedKorisnik.getIme(), loggedKorisnik.getPrezime(), loggedKorisnik.getDatumRodjenja(), loggedKorisnik.getPol(), loggedKorisnik.getUloga());
LoginDto dto = new LoginDto(loggedKorisnik.getKorisnickoIme(), loggedKorisnik.getLozinka(), loggedKorisnik.getIme(), loggedKorisnik.getPrezime(), loggedKorisnik.getDatumRodjenja(), loggedKorisnik.getPol(), loggedKorisnik.getUloga());
dto.setSessionId(session.getId());
return new ResponseEntity<>(dto, HttpStatus.OK);
}

@GetMapping(value = "profil",
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Korisnik> getProfil(HttpSession session){

Korisnik loggedKorisnik = (Korisnik) session.getAttribute("logovaniKorsinik");

if(loggedKorisnik == null) {
System.out.println("Nema sesije");
} else {
System.out.println(loggedKorisnik);
}
return ResponseEntity.ok(loggedKorisnik);

}
@GetMapping(value = "korisnici",
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<KorisnikDto>> getSveKorisnike(HttpSession session){
List<Korisnik> listaKorisnika = new ArrayList<>();
Korisnik loggedKorisnik = (Korisnik) session.getAttribute("logovaniKorsinik");
if(loggedKorisnik.getUloga()!=Uloga.Admin){
return new ResponseEntity("Nemate pristupa ovim podacima", HttpStatus.BAD_REQUEST);
}
List<KorisnikDto> dtoList = korisnikService.findAll();
return new ResponseEntity<>(dtoList, HttpStatus.OK);

}
}
Loading