diff --git a/backend/TMSProject/pom.xml b/backend/TMSProject/pom.xml index 87e1808..cfdbdbf 100644 --- a/backend/TMSProject/pom.xml +++ b/backend/TMSProject/pom.xml @@ -1,12 +1,13 @@ - 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.3 - + br.com.entra21.team-roxo TMSProject @@ -38,6 +39,11 @@ spring-boot-starter-test test + + com.fasterxml.jackson.core + jackson-databind + 2.13.3 + 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 b711e04..c95e423 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 @@ -1,13 +1,31 @@ package br.com.entra21.teamroxo.TMSProject; +import java.util.ArrayList; + +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import br.com.entra21.teamroxo.TMSProject.template.Pessoa; + @SpringBootApplication -public class TmsProjectApplication { +public class TmsProjectApplication implements CommandLineRunner { + public static ArrayList pessoas=new ArrayList(); + public static void main(String[] args) { SpringApplication.run(TmsProjectApplication.class, 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/controllers/PessoaController.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java new file mode 100644 index 0000000..af35037 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/controllers/PessoaController.java @@ -0,0 +1,71 @@ +package br.com.entra21.teamroxo.TMSProject.controllers; + +import java.util.ArrayList; +import java.util.List; + +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.RequestMapping; +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.template.ItemNivel3; +import br.com.entra21.teamroxo.TMSProject.template.Pessoa; + +@RestController +@CrossOrigin(origins = "*") +@RequestMapping("/login") +public class PessoaController { + + private final String PATH = "http://localhost:8080/pessoas"; + + @GetMapping() + @ResponseStatus(code = HttpStatus.OK) + public ListlistAll(){ + return obterListaCompleta(); + } + + private List obterListaCompleta() { + + List response = TmsProjectApplication.pessoas.stream().toList(); + response.forEach(pessoa -> { + setMaturidadeNivel3(pessoa); + }); + + return response; + + } + + private void setMaturidadeNivel3(Pessoa pessoa) { + + ArrayList headers = new ArrayList(); + headers.add("Accept : application/json"); + headers.add("Content-type : application/json"); + ObjectMapper mapper = new ObjectMapper(); + mapper.setSerializationInclusion(Include.NON_NULL); + + try { + + pessoa.setLinks(null); + String json = mapper.writeValueAsString(pessoa); + pessoa.setLinks(new ArrayList<>()); + pessoa.getLinks().add(new ItemNivel3("GET", PATH, null, null)); + pessoa.getLinks().add(new ItemNivel3("GET", PATH + "/" + pessoa.getNome(), null, null)); + pessoa.getLinks().add(new ItemNivel3("POST", PATH, headers, json)); + pessoa.getLinks().add(new ItemNivel3("PUT", PATH + "/" + pessoa.getNome(), headers, json)); + + } catch (JsonProcessingException e) { + + e.printStackTrace(); + + } + + } + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/ItemNivel3.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/ItemNivel3.java new file mode 100644 index 0000000..bec4e23 --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/ItemNivel3.java @@ -0,0 +1,59 @@ +package br.com.entra21.teamroxo.TMSProject.template; + +import java.util.ArrayList; + +public class ItemNivel3 { + + private String ref; + private String url; + private ArrayList headers; + private String body; + + public ItemNivel3() { + super(); + } + + public ItemNivel3(String ref, String url, ArrayList headers, String body) { + super(); + this.ref = ref; + this.url = url; + this.headers = headers; + this.body = body; + } + + public String getRef() { + return ref; + } + + public void setRef(String ref) { + this.ref = ref; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public ArrayList getHeaders() { + return headers; + } + + public void setHeaders(ArrayList headers) { + this.headers = headers; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + + + +} diff --git a/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/MaturidadeNivel3Richardson.java b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/MaturidadeNivel3Richardson.java new file mode 100644 index 0000000..6be322d --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/MaturidadeNivel3Richardson.java @@ -0,0 +1,26 @@ +package br.com.entra21.teamroxo.TMSProject.template; + +import java.util.ArrayList; + +public class MaturidadeNivel3Richardson { + + private ArrayList links; + + public MaturidadeNivel3Richardson() { + super(); + } + + public MaturidadeNivel3Richardson(ArrayList links) { + super(); + this.links = links; + } + + public ArrayList getLinks() { + return links; + } + + public void setLinks(ArrayList links) { + this.links = links; + } + +} 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 new file mode 100644 index 0000000..888198d --- /dev/null +++ b/backend/TMSProject/src/main/java/br/com/entra21/teamroxo/TMSProject/template/Pessoa.java @@ -0,0 +1,50 @@ +package br.com.entra21.teamroxo.TMSProject.template; + +public class Pessoa extends MaturidadeNivel3Richardson{ + + private String nome; + private String email; + private byte idade; + + + + //CONSTRUCTORS + + public Pessoa() { + super(); + } + + public Pessoa(String nome, String email, byte idade) { + super(); + this.nome = nome; + this.idade = idade; + this.email = email; + } + + // GETTERS... + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public int getIdade() { + return idade; + } + + public void setIdade(byte idade) { + this.idade = idade; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + +} diff --git a/frontend/main/src/app/home/home.component.css b/frontend/main/src/app/home/home.component.css index 2e1dae3..d41e7ca 100644 --- a/frontend/main/src/app/home/home.component.css +++ b/frontend/main/src/app/home/home.component.css @@ -7,9 +7,10 @@ } .card-body a{ color: white; - transition: ease-in-out 0.35s ; + transition: ease-in-out 200ms ; + cursor: pointer; } .card-body a:hover{ - transition: ease-in-out 0.35s ; + transition: ease-in-out 200ms ; color: lightslategrey; } diff --git a/frontend/main/src/app/login/login.component.css b/frontend/main/src/app/login/login.component.css index eb3d0e7..77b99f4 100644 --- a/frontend/main/src/app/login/login.component.css +++ b/frontend/main/src/app/login/login.component.css @@ -9,7 +9,7 @@ body{ background-color: #1f2029; overflow-x: hidden; } -a { +a{ cursor: pointer; transition: all 200ms linear; } diff --git a/frontend/main/src/app/login/login.component.html b/frontend/main/src/app/login/login.component.html index 970825f..a95f153 100644 --- a/frontend/main/src/app/login/login.component.html +++ b/frontend/main/src/app/login/login.component.html @@ -14,15 +14,15 @@
Log In Sign Up

Log In

+ autocomplete="off" [(ngModel)]="user" required (keyup.enter)="submit()" [disabled]="loginService.progress">
+ autocomplete="on" [(ngModel)]="password" required (keyup.enter)="submit()" [disabled]="loginService.progress">
- submit +

Forgot your password?

@@ -33,20 +33,20 @@

Log In

Sign Up

+ autocomplete="on" [(ngModel)]="nameReg" required (keyup.enter)="register()" [disabled]="loginService.progress">
+ autocomplete="on" [(ngModel)]="emailReg" required (keyup.enter)="register()" [disabled]="loginService.progress">
+ autocomplete="on" [(ngModel)]="passwordReg" required (keyup.enter)="register()" [disabled]="loginService.progress">
- submit + diff --git a/frontend/main/src/app/login/login.component.ts b/frontend/main/src/app/login/login.component.ts index ce652bb..1309713 100644 --- a/frontend/main/src/app/login/login.component.ts +++ b/frontend/main/src/app/login/login.component.ts @@ -18,16 +18,11 @@ export class LoginComponent implements OnInit { user!:string password!:string - constructor(private router:Router, private loginService:LoginserviceService) { } + constructor(private router:Router, public loginService:LoginserviceService) { } ngOnInit(): void { this.loginService.succeed = false - document.addEventListener("keypress", function(e){ - if(e.key === 'Enter'){ - $('#submitButton') - alert('Ainda na luta pra fazer funcionar esse button pelo Enter') - } - }) + this.loginService.progress = false } submit():void{ @@ -43,6 +38,7 @@ export class LoginComponent implements OnInit { }); }else{ alert('DIGITE TODOS OS CAMPOS OBRIGATÓRIOS!') + this.loginService.progress = false } } @@ -51,14 +47,20 @@ export class LoginComponent implements OnInit { } register(){ - if(this.nameReg != null && this.passwordReg != null && this.emailReg != null){ - this.loginService.succeed = true - this.router.navigateByUrl('home') - this.loginService.registering(this.nameReg, this.nameReg, this.passwordReg) + if(this.nameReg != null && this.emailReg != null && this.passwordReg != null){ + this.loginService.registering(this.nameReg, 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']) + }) + ) + .subscribe((response)=>{ + console.log('Running...', response); + }); }else{ alert('DIGITE TODOS OS CAMPOS OBRIGATÓRIOS!') + this.loginService.progress = false } - } } diff --git a/frontend/main/src/app/loginservice.service.ts b/frontend/main/src/app/loginservice.service.ts index a5c3508..22c3967 100644 --- a/frontend/main/src/app/loginservice.service.ts +++ b/frontend/main/src/app/loginservice.service.ts @@ -13,10 +13,12 @@ export class LoginserviceService implements CanActivate { user!:string TMSLoginAPI:string = "https://randomuser.me/api/?results=1" 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) =>{ @@ -27,15 +29,33 @@ export class LoginserviceService implements CanActivate { new LoginComponent(this.router, this).gotoHome() }) }) - .catch(function(error){ + .catch((error) =>{ console.log(error); + this.progress = false }) return this.http.get(this.TMSLoginAPI+'/'+user+'/'+password) } registering(user:string, password:string, email:string){ - this.user = user + 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 + }) + + return this.http.get(this.TMSLoginAPI+'/'+user+'/'+password) + } canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree | Observable | Promise {