Skip to content

Instantly share code, notes, and snippets.

@hernanif1
Created November 7, 2019 16:02
Show Gist options
  • Save hernanif1/8d208ca6b9d94b193ff0276e3a9c6c55 to your computer and use it in GitHub Desktop.
Save hernanif1/8d208ca6b9d94b193ff0276e3a9c6c55 to your computer and use it in GitHub Desktop.
- possiveis soluções para a api
// --------------------------
1. ao fazer o upload do livro fazer um split das palavras e criar um id para cada uma,
ao clicar é só adicionar propriedades aquele id por user
(problemas: provavelmente muito pesado pro db e complexo pra dar um search, ou saber a página da palavra para pular pra ela)
[GET] api/v1/read/{id}?limit=500&page=1
{
id: 3965,
page: 1,
totalPages: 500,
text: [
{
id: 1,
label: "Ik",
actions: [
userId:57843,
]
} ...
]
}
[GET] api/v1/actions/{id}
// por usuário -> get from token
[{
userId: 57843,
bookId: 3965,
textId: 1,
selected: true,
translated: true
}]
// --------------------------
2. no banco guardo o livro inteiro e faço a query
(problemas: não é possível relacionar palavra com a página pois a página é dinâmica)
[GET] api/v1/read/{id}?characters=500&page=2
{
text: "In de Ligusterlaan, op nummer 4, woonden meneer en mevrouw Duffeling. Ze waren er trots op dat ze doodnormaal waren en als a ooit mensen waren geweest van wie je zou denken dat ze nooit bij iets vreemds of geheimzinnigs betrokken zouden raken waren zij het wel, want voor dat soort onzin hadden ze geen tijd. Meneer Duffeling was directeur van Drillings, een boormachinefabriek. Hij was groot",
page: 23,
totalPages: 300,
words: [
{
selected: [{
page: 23, // não tem como fazer isso pq a página é dinâmica
index: [2]
}],
translation: "que",
label: "dat",
},
]
}
// --------------------------
3. na máquina do usuário ele manipula o texto pelo front o texto adicionando
tags html no arquivo e a paginação é controlada pelo front carregando o livro inteiro
e informações podem ser enviadas asyncronas a cada click pro back para contabilizar
<span>In</span>
<span> </span>
<span>de</span>
<span> </span>
<span data-select="true" data-translated=true>woonden</span> ....
// precisaria tb de
array de palavras selecionadas podendo ser gigante para selecionar as próximas
["woonden", ]
//
4. quebrar em pequenos parágrafos que possam caber em um mobile
e fazer a query no parameter por quantidade de parágrafos.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment