diff --git a/backend/TMSProject/pom.xml b/backend/TMSProject/pom.xml index cfdbdbf..e3214f1 100644 --- a/backend/TMSProject/pom.xml +++ b/backend/TMSProject/pom.xml @@ -39,6 +39,14 @@ spring-boot-starter-test test + + org.springframework.boot + spring-boot-starter-jdbc + + + org.springframework.boot + spring-boot-starter-data-jpa + com.fasterxml.jackson.core jackson-databind diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplication.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplication.java index c95e423..ebccb8c 100644 --- a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplication.java +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/TmsProjectApplication.java @@ -2,16 +2,25 @@ import java.util.ArrayList; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.jdbc.core.JdbcTemplate; +import br.com.entra21.teamroxo.TMSProject.interfaces.PessoaRepository; +import br.com.entra21.teamroxo.TMSProject.template.Login; import br.com.entra21.teamroxo.TMSProject.template.Pessoa; @SpringBootApplication public class TmsProjectApplication implements CommandLineRunner { - - public static ArrayList pessoas=new ArrayList(); + + private static PessoaRepository pessoaRepository; + + public static ArrayList login = new ArrayList(); + + @Autowired + private JdbcTemplate jdbc; public static void main(String[] args) { SpringApplication.run(TmsProjectApplication.class, args); @@ -20,12 +29,6 @@ public static void main(String[] args) { @Override public void run(String... args) throws Exception { - pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); - pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); - pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); - pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); - pessoas.add(new Pessoa("Kalil", "kjfakhouri@gmail.com", (byte) 21)); - } } diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/WebConfig.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/WebConfig.java new file mode 100644 index 0000000..0030d2a --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/WebConfig.java @@ -0,0 +1,17 @@ +package br.com.entra21.teamroxo.TMSProject; + +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +public class WebConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + + registry.addMapping("/**") + .allowedOrigins("*") + .allowedMethods("GET", "POST", "DELETE", "PUT"); + + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/LoginController.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/LoginController.java new file mode 100644 index 0000000..57576d2 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/LoginController.java @@ -0,0 +1,90 @@ +package br.com.entra21.teamroxo.TMSProject.controllers; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import br.com.entra21.teamroxo.TMSProject.TmsProjectApplication; +import br.com.entra21.teamroxo.TMSProject.interfaces.LoginRepository; +import br.com.entra21.teamroxo.TMSProject.interfaces.PessoaRepository; +import br.com.entra21.teamroxo.TMSProject.template.ItemNivel3; +import br.com.entra21.teamroxo.TMSProject.template.Login; +import br.com.entra21.teamroxo.TMSProject.template.Pessoa; + +@RestController +@CrossOrigin(origins = "*") +@RequestMapping("/login") +public class LoginController { + + private final String PATH = "http://localhost:8080/login"; + + @Autowired + private PessoaRepository pessoaRepository; + + @Autowired + private LoginRepository loginRepository; + + @PostMapping() + @ResponseStatus(code = HttpStatus.OK) + public @ResponseBody List login(@RequestBody Login credentials){ + + List response = new ArrayList(loginRepository.findAll()).stream() + .filter(login -> (login.getUser().equals(credentials.getUser())) && + login.getSenha().equals(credentials.getSenha())) + .toList(); + response.forEach(pessoa -> { + setMaturidadeLvl3(pessoa); + }); + + return response; + + } + + @PostMapping("/register") + @ResponseStatus(code = HttpStatus.CREATED) + public @ResponseBody Pessoa register(@RequestBody Pessoa credentials){ + return pessoaRepository.save(credentials); + } + + private void setMaturidadeLvl3(Login pessoa) { + + ArrayList headers = new ArrayList<>(Arrays.asList( + + "Accept:application/json", + "Content-Type:application/json" + + )); + + ObjectMapper mapper = new ObjectMapper(); + + mapper.setSerializationInclusion(Include.NON_NULL); + + pessoa.setLinks(null); + + try { + + String json = mapper.writeValueAsString(pessoa); + pessoa.setLinks(new ArrayList<>()); + pessoa.getLinks().add(new ItemNivel3("POST", PATH+"/login", headers, json)); + + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java index af35037..fb80d71 100644 --- a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java @@ -2,38 +2,55 @@ import java.util.ArrayList; import java.util.List; +import java.util.Optional; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import br.com.entra21.teamroxo.TMSProject.TmsProjectApplication; +import br.com.entra21.teamroxo.TMSProject.interfaces.PessoaRepository; import br.com.entra21.teamroxo.TMSProject.template.ItemNivel3; import br.com.entra21.teamroxo.TMSProject.template.Pessoa; @RestController @CrossOrigin(origins = "*") -@RequestMapping("/login") +@RequestMapping("/user") public class PessoaController { - private final String PATH = "http://localhost:8080/pessoas"; + private final String PATH = "http://localhost:8080/users"; + + @Autowired + private PessoaRepository pessoaRepository; @GetMapping() @ResponseStatus(code = HttpStatus.OK) public ListlistAll(){ return obterListaCompleta(); } + + @GetMapping("/{id}") + public Optional list(@PathVariable int id){ + + return pessoaRepository.findById(id); + + } private List obterListaCompleta() { - List response = TmsProjectApplication.pessoas.stream().toList(); + List response = pessoaRepository.findAll(); response.forEach(pessoa -> { setMaturidadeNivel3(pessoa); }); @@ -48,6 +65,8 @@ private void setMaturidadeNivel3(Pessoa pessoa) { headers.add("Accept : application/json"); headers.add("Content-type : application/json"); ObjectMapper mapper = new ObjectMapper(); + mapper.registerModule(new JavaTimeModule()); + mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); mapper.setSerializationInclusion(Include.NON_NULL); try { diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/RegisterController.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/RegisterController.java new file mode 100644 index 0000000..da9c759 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/RegisterController.java @@ -0,0 +1,32 @@ +package br.com.entra21.teamroxo.TMSProject.controllers; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import br.com.entra21.teamroxo.TMSProject.interfaces.PessoaRepository; +import br.com.entra21.teamroxo.TMSProject.template.Pessoa; + +@RestController +@CrossOrigin(origins = "*") +@RequestMapping("/register") +public class RegisterController { + + private final String PATH = "http://localhost:8080/register"; + + @Autowired + private PessoaRepository pessoaRepository; + + @PostMapping() + @ResponseStatus(code = HttpStatus.CREATED) + public @ResponseBody Pessoa register(@RequestBody Pessoa credentials){ + return pessoaRepository.save(credentials); + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/interfaces/LoginRepository.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/interfaces/LoginRepository.java new file mode 100644 index 0000000..9f23f4c --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/interfaces/LoginRepository.java @@ -0,0 +1,9 @@ +package br.com.entra21.teamroxo.TMSProject.interfaces; + +import org.springframework.data.jpa.repository.JpaRepository; + +import br.com.entra21.teamroxo.TMSProject.template.Login; + +public interface LoginRepository extends JpaRepository { + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/interfaces/PessoaRepository.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/interfaces/PessoaRepository.java new file mode 100644 index 0000000..d8d0095 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/interfaces/PessoaRepository.java @@ -0,0 +1,9 @@ +package br.com.entra21.teamroxo.TMSProject.interfaces; + +import org.springframework.data.jpa.repository.JpaRepository; + +import br.com.entra21.teamroxo.TMSProject.template.Pessoa; + +public interface PessoaRepository extends JpaRepository { + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Login.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Login.java new file mode 100644 index 0000000..ab8c655 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Login.java @@ -0,0 +1,84 @@ +package br.com.entra21.teamroxo.TMSProject.template; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +@Entity +@Table(name = "login") +public class Login extends MaturidadeNivel3Richardson { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + private String user; + private String senha; + private boolean admin; + private boolean enterprise; + private Integer pessoa_id; + + public Login() { + super(); + } + + public Login(Integer id, String user, String senha, boolean admin, boolean enterprise, Integer pessoa_id) { + super(); + this.id = id; + this.user = user; + this.senha = senha; + this.admin = admin; + this.enterprise = enterprise; + this.pessoa_id = pessoa_id; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public boolean isAdmin() { + return admin; + } + + public void setAdmin(boolean admin) { + this.admin = admin; + } + + public boolean isEnterprise() { + return enterprise; + } + + public void setEnterprise(boolean enterprise) { + this.enterprise = enterprise; + } + + public Integer getPessoa_id() { + return pessoa_id; + } + + public void setPessoa_id(Integer pessoa_id) { + this.pessoa_id = pessoa_id; + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java index 888198d..c282a8f 100644 --- a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java @@ -1,42 +1,55 @@ package br.com.entra21.teamroxo.TMSProject.template; -public class Pessoa extends MaturidadeNivel3Richardson{ +import java.time.LocalDate; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +@Entity +@Table(name = "pessoa") +public class Pessoa extends MaturidadeNivel3Richardson { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; private String nome; private String email; - private byte idade; - - - - //CONSTRUCTORS + private LocalDate birth; + private String document; public Pessoa() { super(); } - - public Pessoa(String nome, String email, byte idade) { + + public Pessoa(Integer id, String nome, String email, LocalDate birth, String document) { super(); + this.id = id; this.nome = nome; - this.idade = idade; this.email = email; + this.birth = birth; + this.document = document; } - - // GETTERS... - public String getNome() { - return nome; + public Integer getId() { + return id; } - public void setNome(String nome) { - this.nome = nome; + public void setId(Integer id) { + this.id = id; } - public int getIdade() { - return idade; + public String getNome() { + return nome; } - public void setIdade(byte idade) { - this.idade = idade; + public void setNome(String nome) { + this.nome = nome; } public String getEmail() { @@ -46,5 +59,21 @@ public String getEmail() { public void setEmail(String email) { this.email = email; } + + public LocalDate getBirth() { + return birth; + } + + public void setBirth(LocalDate birth) { + this.birth = birth; + } + + public String getDocument() { + return document; + } + + public void setDocument(String document) { + this.document = document; + } } diff --git a/backend/TMSProject/src/main/resources/application.properties b/backend/TMSProject/src/main/resources/application.properties index 8b13789..a55f04f 100644 --- a/backend/TMSProject/src/main/resources/application.properties +++ b/backend/TMSProject/src/main/resources/application.properties @@ -1 +1,16 @@ +spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase +spring.datasource.username=root + +spring.datasource.password=Mr_kak4k0ur1 + + +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver + +spring.jpa.hibernate.ddl-auto=update + +spring.jpa.show-sql=true + +spring.jpa.properties.hibernate.format_sql=true + +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57InnoDBDialect diff --git a/frontend/main/src/app/carriers/carriers.component.html b/frontend/main/src/app/carriers/carriers.component.html index 70bfe17..2949c89 100644 --- a/frontend/main/src/app/carriers/carriers.component.html +++ b/frontend/main/src/app/carriers/carriers.component.html @@ -3,15 +3,14 @@ Razão social E-mail CNPJ - + Taxa - Tabela de frete - - + @@ -25,6 +24,7 @@ Razão social E-mail CNPJ + Taxa - Tabela de frete Ações @@ -33,6 +33,7 @@ {{carrier.name}} {{carrier.email}} {{carrier.cnpj}} + {{carrier.taxValorFrete}} diff --git a/frontend/main/src/app/carriers/carriers.component.ts b/frontend/main/src/app/carriers/carriers.component.ts index 9b514ff..ec78f22 100644 --- a/frontend/main/src/app/carriers/carriers.component.ts +++ b/frontend/main/src/app/carriers/carriers.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; @Component({ selector: 'app-carriers', @@ -10,25 +11,33 @@ export class CarriersComponent implements OnInit { name!:string email!:string cnpj!:string + taxValorFrete!:number - constructor() { } + constructor( + private router:Router + ) { } ngOnInit(): void { this.carriers = new Array() - this.carriers.push({name:"Total Express", email:"total@express.com", cnpj:"4564564566454655"}) - this.carriers.push({name:"Jadlog", email:"jadlog@jadlog.com", cnpj:"4564664656565456"}) - this.carriers.push({name:"Braspress", email:"braspress@braspress.com", cnpj:"1231323132312"}) - this.carriers.push({name:"Correios", email:"correios@correios.com", cnpj:"7897987899789"}) + this.carriers.push({name:"Total Express", email:"total@express.com", cnpj:"4564564566454655", taxValorFrete:0.081}) + this.carriers.push({name:"Jadlog", email:"jadlog@jadlog.com", cnpj:"4564664656565456", taxValorFrete:0.084}) + this.carriers.push({name:"Braspress", email:"braspress@braspress.com", cnpj:"1231323132312", taxValorFrete:0.089}) + this.carriers.push({name:"Correios", email:"correios@correios.com", cnpj:"7897987899789", taxValorFrete:0.078}) } adicionar(){ if(this.name){ - this.carriers.push({name:this.name, email:this.email, cnpj:this.cnpj}) + this.carriers.push({name:this.name, email:this.email, cnpj:this.cnpj, taxValorFrete:this.taxValorFrete}) this.name ="" this.email="" - this.cnpj="" + this.cnpj="" + this.taxValorFrete= 0 } + let listaCarrier:any = [ + {name:this.name, email:this.email, cnpj:this.cnpj, taxValorFrete:this.taxValorFrete} + ] + this.router.navigate(['ship-qt', JSON.stringify(listaCarrier)]) } diff --git a/frontend/main/src/app/home/home.component.css b/frontend/main/src/app/home/home.component.css index d41e7ca..47930f1 100644 --- a/frontend/main/src/app/home/home.component.css +++ b/frontend/main/src/app/home/home.component.css @@ -14,3 +14,11 @@ transition: ease-in-out 200ms ; color: lightslategrey; } +.card-title{ + color: white; +} +#card-body-dash:hover{ + cursor: pointer; +} +.card-body:hover{ +} diff --git a/frontend/main/src/app/home/home.component.html b/frontend/main/src/app/home/home.component.html index 8afae69..40847b6 100644 --- a/frontend/main/src/app/home/home.component.html +++ b/frontend/main/src/app/home/home.component.html @@ -15,8 +15,8 @@

Where do you want to go?

-
-

+ @@ -60,7 +60,7 @@

  Packages

-

  Finance

+

  Finance


  • diff --git a/frontend/main/src/app/login/login.component.html b/frontend/main/src/app/login/login.component.html index a95f153..84e655c 100644 --- a/frontend/main/src/app/login/login.component.html +++ b/frontend/main/src/app/login/login.component.html @@ -36,6 +36,11 @@

    Sign Up

    autocomplete="on" [(ngModel)]="nameReg" required (keyup.enter)="register()" [disabled]="loginService.progress">
+
+ + +
diff --git a/frontend/main/src/app/login/login.component.ts b/frontend/main/src/app/login/login.component.ts index b55c52f..390646b 100644 --- a/frontend/main/src/app/login/login.component.ts +++ b/frontend/main/src/app/login/login.component.ts @@ -12,6 +12,7 @@ export class LoginComponent implements OnInit { emailReg!:string nameReg!:string + userReg!:string passwordReg!:string user!:string @@ -27,13 +28,16 @@ export class LoginComponent implements OnInit { submit():void{ if(this.user != null && this.password != null){ this.loginService.logging(this.user, this.password) - .pipe( - catchError((error)=>{ - return of([error]) - }) - ) - .subscribe((response)=>{ - console.log('Running...', response); + .pipe() + .subscribe((response:any)=>{ + console.log('Running...', response) + if(response == ""){ + this.loginService.progress = false; + alert("USUARIO OU SENHA ERRADOS") + }else{ + this.loginService.succeed = true + this.gotoHome() + } }); }else{ alert('DIGITE TODOS OS CAMPOS OBRIGATÓRIOS!') @@ -47,14 +51,14 @@ export class LoginComponent implements OnInit { register(){ if(this.nameReg != null && this.emailReg != null && this.passwordReg != null){ - this.loginService.registering(this.nameReg, this.emailReg, this.passwordReg) + this.loginService.registering(this.nameReg, this.userReg , this.emailReg, this.passwordReg) .pipe( catchError((error)=>{ - return of(['Deu erro parcero é isso', 'tu não vai encontrar detalhe aqui','pode sair já...', error, 'só pq sou teu amigo vou deixar esse error ai']) + return of(['Error!', error]) }) ) - .subscribe((response)=>{ - console.log('Running...', response); + .subscribe((response:any)=>{ + console.log('Successful Login!'); }); }else{ alert('DIGITE TODOS OS CAMPOS OBRIGATÓRIOS!') diff --git a/frontend/main/src/app/loginservice.service.ts b/frontend/main/src/app/loginservice.service.ts index 13b7fa0..f1437a2 100644 --- a/frontend/main/src/app/loginservice.service.ts +++ b/frontend/main/src/app/loginservice.service.ts @@ -1,8 +1,8 @@ -import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { InjectSetupWrapper } from '@angular/core/testing'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router'; -import { Observable } from 'rxjs'; +import { catchError, Observable } from 'rxjs'; import { LoginComponent } from './login/login.component'; @Injectable({ @@ -11,50 +11,62 @@ import { LoginComponent } from './login/login.component'; export class LoginserviceService implements CanActivate { user!: string - TMSLoginAPI: string = "https://randomuser.me/api/?results=1" + TMSLoginAPI: string = "http://localhost:8080" succeed!: boolean progress: boolean = false constructor(private router: Router, private http: HttpClient) { } logging(user: string, password: string) { + this.progress = true - fetch(this.TMSLoginAPI) - .then((resp) => resp.json()) - .then((data) => { - let ranUsers = data.results; - return ranUsers.map((ranUser: any) => { - this.user = `${ranUser.name.first}` - this.succeed = true - new LoginComponent(this.router, this).gotoHome() - }) - }) - .catch((error) => { - console.log(error); + + let build:any = { + 'user':user, + 'senha':password + } + + this.http.post(this.TMSLoginAPI +'/login', build) + .pipe( + catchError((error)=>{ this.progress = false + return error + }) + ) + .subscribe((response:any)=>{ + this.http.get(this.TMSLoginAPI+'/user/'+response[0].pessoa_id) + .subscribe((resp:any) =>{ + console.log(resp); + this.user = resp.nome }) + return response + }) - return this.http.get(this.TMSLoginAPI + '/' + user + '/' + password) + return this.http.post(this.TMSLoginAPI +'/login', build) } - registering(user: string, password: string, email: string) { + registering(name:string ,user: string, password: string, email: string) { + this.progress = true - fetch(this.TMSLoginAPI) - .then((resp) => resp.json()) - .then((data) => { - let ranUsers = data.results; - return ranUsers.map((ranUser: any) => { - this.user = `${ranUser.name.first}` - this.succeed = true - new LoginComponent(this.router, this).gotoHome() - }) - }) - .catch((error) => { - console.log(error); - this.progress = false + + let build:any = { + 'name':name, + 'user':user, + 'password':password, + 'email':email + } + + this.http.post(this.TMSLoginAPI+'/register', build) + .pipe( + catchError((error)=>{ + return error }) + ) + .subscribe((response)=>{ + return response + }) - return this.http.get(this.TMSLoginAPI + '/' + user + '/' + password) + return build } diff --git a/frontend/main/src/app/ship-qt/ship-qt.component.html b/frontend/main/src/app/ship-qt/ship-qt.component.html index 59268f7..8e4fa8a 100644 --- a/frontend/main/src/app/ship-qt/ship-qt.component.html +++ b/frontend/main/src/app/ship-qt/ship-qt.component.html @@ -18,7 +18,6 @@ -

@@ -26,8 +25,7 @@ ID Preço do frete - Prazo - Tracking code + Prazo Origem Destino Comprimento (cm) @@ -39,10 +37,9 @@ {{i}} R${{quote.precoFrete}} - {{quote.tempo}} dias úteis - {{quote.trackid}} - {{quote.cepOrigem}} - {{quote.cepDestino}} + {{quote.durationTime}} dias úteis + {{quote.startAdress}} + {{quote.endAdress}} {{quote.comprimento}} {{quote.largura}} {{quote.altura}} diff --git a/frontend/main/src/app/ship-qt/ship-qt.component.ts b/frontend/main/src/app/ship-qt/ship-qt.component.ts index b8af75f..22e3139 100644 --- a/frontend/main/src/app/ship-qt/ship-qt.component.ts +++ b/frontend/main/src/app/ship-qt/ship-qt.component.ts @@ -1,6 +1,8 @@ import { HttpClient } from '@angular/common/http'; import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; import { catchError, of } from 'rxjs'; +import { CarriersComponent } from '../carriers/carriers.component'; import { QuoteService } from '../quote.service'; @Component({ @@ -17,28 +19,50 @@ export class ShipQtComponent implements OnInit { altura!: number peso!: number precoFrete!: number - tempo!: string + tempo!: number trackid!: string + startAdress!: string + endAdress!: string + durationTime!:number + distanceKm!:string - constructor(public quoteService:QuoteService) {} + constructor( + public quoteService: QuoteService, private activatedRoute: ActivatedRoute + ) { } ngOnInit(): void { - - //this.quotes.push({ precoFrete: 45.50, tempo: 3, trackid: "BR23154546TR", cepOrigem: 88058086, cepDestino: 88058086, comprimento: 50, largura: 50, altura: 50, peso: 10 }) - //this.quotes.push({ precoFrete: 94.50, tempo: 6, trackid: "BR22315445TR", cepOrigem: 46513265, cepDestino: 65898454, comprimento: 100, largura: 200, altura: 10, peso: 25 }) + this.quotes = new Array(); + //this.quotes.push({ precoFrete: 45.50, tempo: 3, trackid: "BR23154546TR", cepOrigem: 88058086, cepDestino: 88058086, comprimento: 50, largura: 50, altura: 50, peso: 10 }) + //this.quotes.push({ precoFrete: 94.50, tempo: 6, trackid: "BR22315445TR", cepOrigem: 46513265, cepDestino: 65898454, comprimento: 100, largura: 200, altura: 10, peso: 25 }) } quote() { - - if(this.cepOrigem != null && this.cepDestino != null){ + if (this.cepOrigem != null && this.cepDestino != null) { this.quoteService.quote(this.cepOrigem, this.cepDestino) - .pipe() - .subscribe((response:any) => { - console.log(response); - console.log(response.routes[0].legs[0].duration.text); - }) - }else{ + .pipe() + .subscribe((response: any) => { + console.log(response); + console.log(response.routes[0].legs[0].duration.text); + console.log(response.routes[0].legs[0].distance.text); + console.log(response.routes[0].legs[0].start_address); + console.log(response.routes[0].legs[0].end_address); + + this.durationTime = response.routes[0].legs[0].duration.value; + this.distanceKm = response.routes[0].legs[0].distance.value; + this.startAdress = response.routes[0].legs[0].start_address; + this.endAdress = response.routes[0].legs[0].end_address; + + + + this.precoFrete = (parseFloat(this.distanceKm)/1000) * 0.081; + console.log(this.precoFrete); + this.durationTime = Math.ceil((parseFloat(this.distanceKm)/500)/1000); + console.log(this.durationTime); + + this.quotes.push({precoFrete:this.precoFrete, durationTime:this.durationTime, startAdress:this.startAdress, endAdress:this.endAdress, comprimento:this.comprimento, largura:this.largura, altura:this.altura, peso:this.peso}) + }) + } else { alert('DIGITE TODOS OS DADOS!') } diff --git a/frontend/main/src/index.html b/frontend/main/src/index.html index 6c9a21f..85c2739 100644 --- a/frontend/main/src/index.html +++ b/frontend/main/src/index.html @@ -7,7 +7,7 @@ - + diff --git a/webpage/assets/img/about/MicrosoftTeams-image_1.jpg b/webpage/assets/img/about/MicrosoftTeams-image_1.jpg new file mode 100644 index 0000000..4a6db3b Binary files /dev/null and b/webpage/assets/img/about/MicrosoftTeams-image_1.jpg differ diff --git a/webpage/assets/img/about/pexels-luis-gomes-546819.jpg b/webpage/assets/img/about/pexels-luis-gomes-546819.jpg new file mode 100644 index 0000000..e9acf8d Binary files /dev/null and b/webpage/assets/img/about/pexels-luis-gomes-546819.jpg differ diff --git a/webpage/assets/img/about/pexels-thirdman-7652186.jpg b/webpage/assets/img/about/pexels-thirdman-7652186.jpg new file mode 100644 index 0000000..dc047b2 Binary files /dev/null and b/webpage/assets/img/about/pexels-thirdman-7652186.jpg differ diff --git a/webpage/index.html b/webpage/index.html index 4894b43..13a4723 100644 --- a/webpage/index.html +++ b/webpage/index.html @@ -49,13 +49,14 @@

Services

-

Lorem ipsum dolor sit amet consectetur.

+
+
- +

E-Commerce

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima maxime quam architecto quo inventore harum ex magni, dicta impedit.

@@ -185,25 +186,25 @@

Lorem ipsum dolor sit amet consectetur

About

-

Lorem ipsum dolor sit amet consectetur.

+

Beginning of our story.

  • -
    ...
    +
    ...
    -

    2009-2011

    -

    Our Humble Beginnings

    +

    March 2022

    +

    Our First Drafts

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!

  • -
    ...
    +
    ...
    -

    March 2011

    -

    An Agency is Born

    +

    April 2022

    +

    Our First Backend Project

    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt ut voluptatum eius sapiente, totam reiciendis temporibus qui quibusdam, recusandae sit vero unde, sed, incidunt et ea quo dolore laudantium consectetur!