Skip to content

Commit

Permalink
commit final
Browse files Browse the repository at this point in the history
  • Loading branch information
Murilo Guizelin committed Aug 2, 2023
1 parent b7f5544 commit 6f6ad36
Show file tree
Hide file tree
Showing 11 changed files with 231 additions and 171 deletions.
49 changes: 0 additions & 49 deletions src/main/java/com/testes/tags/CounterController.java

This file was deleted.

61 changes: 61 additions & 0 deletions src/main/java/com/testes/tags/CounterTagController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package com.testes.tags;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.Arrays;
import java.util.List;

@Controller
public class CounterTagController {

private final CounterTagService tagCounterService;
private final CounterTagRepository counterTagRepository;

public CounterTagController(CounterTagService tagCounterService, CounterTagRepository counterTagRepository) {
this.tagCounterService = tagCounterService;
this.counterTagRepository = counterTagRepository;
}

@GetMapping("/")
public String showForm(Model model) {
model.addAttribute("urlsForm", new CounterTagForm());

List<CounterTagEntity> counterTagEntities = counterTagRepository.findAll();
model.addAttribute("counterTagEntities", counterTagEntities);

return "index";
}

@PostMapping("/countTags")
public String countTags(@ModelAttribute CounterTagForm urlsForm, Model model) {
List<String> urls = Arrays.asList(urlsForm.getUrls().split("\n"));
List<CounterTagDTO> results = tagCounterService.countHtmlTags(urls);
model.addAttribute("results", results);

for (CounterTagDTO result : results) {
List<CounterTagEntity> existingEntities = counterTagRepository.findByUrl(result.getUrl());
for (String tagName : result.getTagCountMap().keySet()) {
int tagCount = result.getTagCountMap().get(tagName);
if (!existingEntities.isEmpty()) {
CounterTagEntity existingEntity = existingEntities.get(0);
existingEntity.setTagCount(tagCount);
counterTagRepository.save(existingEntity);
} else {
CounterTagEntity tagEntity = new CounterTagEntity(result.getUrl(), tagName, tagCount);
counterTagRepository.save(tagEntity);
}
}
}

// Atualizar a lista de informações do banco de dados após salvar os dados
List<CounterTagEntity> counterTagEntities = counterTagRepository.findAll();
model.addAttribute("counterTagEntities", counterTagEntities);

return "results";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

import java.util.Map;

public class TagDTO {
public class CounterTagDTO {
private String url;
private Map<String, Integer> tagCountMap;

public TagDTO() {
public CounterTagDTO() {
}

public TagDTO(String url, Map<String, Integer> tagCountMap) {
public CounterTagDTO(String url, Map<String, Integer> tagCountMap) {
this.url = url;
this.tagCountMap = tagCountMap;
}
Expand Down
13 changes: 12 additions & 1 deletion src/main/java/com/testes/tags/CounterTagEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@ public class CounterTagEntity {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private String url;

private String tagName;

private int tagCount;

public CounterTagEntity() {
}

public CounterTagEntity(String tagName, int tagCount) {
public CounterTagEntity(String url, String tagName, int tagCount) {
this.url = url;
this.tagName = tagName;
this.tagCount = tagCount;
}
Expand All @@ -32,6 +35,14 @@ public void setId(Long id) {
this.id = id;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getTagName() {
return tagName;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.testes.tags;

public class TagForm {
public class CounterTagForm {
private String urls;

public String getUrls() {
Expand Down
7 changes: 6 additions & 1 deletion src/main/java/com/testes/tags/CounterTagRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,10 @@

import org.springframework.data.jpa.repository.JpaRepository;

public interface CounterTagRepository extends JpaRepository<CounterTagEntity, String> {
import java.util.List;

public interface CounterTagRepository extends JpaRepository<CounterTagEntity, Long> {

List<CounterTagEntity> findByUrl(String url);

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,27 @@
import java.util.Map;

@Service
public class CounterService {
public class CounterTagService {

public List<TagDTO> countHtmlTags(List<String> urls) {
List<TagDTO> urlTagInfoList = new ArrayList<>();
public List<CounterTagDTO> countHtmlTags(List<String> urls) {
List<CounterTagDTO> urlTagInfoList = new ArrayList<>();

for (String url : urls) {
try {
Map<String, Integer> tagCountMap = new HashMap<>();
Document doc = Jsoup.connect(url).parser(Parser.htmlParser()).get();

// Obtém todas as tags do HTML e conta a ocorrência de cada uma
for (Element element : doc.getAllElements()) {
String tagName = element.tagName();
tagCountMap.put(tagName, tagCountMap.getOrDefault(tagName, 0) + 1);
}

urlTagInfoList.add(new TagDTO(url, tagCountMap));
urlTagInfoList.add(new CounterTagDTO(url, tagCountMap));
} catch (IOException e) {
// Em caso de erro ao fazer a requisição ou processar a URL, podemos adicionar uma entrada vazia
urlTagInfoList.add(new TagDTO(url, new HashMap<>()));
urlTagInfoList.add(new CounterTagDTO(url, new HashMap<>()));
}
}

return urlTagInfoList;
}
}
}
2 changes: 1 addition & 1 deletion src/main/resources/application.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
spring.datasource.url=jdbc:postgresql://localhost:5432/tag
spring.datasource.url=jdbc:postgresql://localhost:5432/countertags
spring.datasource.username=postgres
spring.datasource.password=123

Expand Down
87 changes: 0 additions & 87 deletions src/main/resources/static/css/style.css

This file was deleted.

Loading

0 comments on commit 6f6ad36

Please sign in to comment.