-
Notifications
You must be signed in to change notification settings - Fork 12
/
armazenamento.js
78 lines (68 loc) · 2.31 KB
/
armazenamento.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
function Armazenamento(key){
//iniciar Storage com um array vazio
if(window.localStorage.getItem(key) === null)
window.localStorage.setItem(key, "[]");
function adicionar(item){
//obtem os itens salvos
var itens = deserializar();
//guarda o item, observe que o armazenamento não sabe de que item se trata
//poderia ser um Participante ou qualquer outro objeto. Só precisa mesmo ser um objeto.
itens.push(item);
//Guarda novamente o Array modificado
serializar(itens);
}
function remover(propriedade, valor){
var itens = deserializar();
var indice = itens.findIndex((elemento) => {
return elemento[propriedade] === valor;
});
itens.splice(indice, 1);
serializar(itens);
}
function atualizar(item, propriedade) {
//obtem os itens salvos
var itens = deserializar();
//procura o indice do objeto que possui a propriedade igual ao do item que estou passando
var indice = itens.findIndex((elemento) => {
return elemento[propriedade] === item[propriedade]
});
//substitui o item. existem outras formas de fazer isso, abstraia
itens[indice] = item;
//Guarda novamente o Array modificado
serializar(itens);
}
function obterItem(propriedade, valor) {
var itens = deserializar();
return itens.find((elemento) => {
return elemento[propriedade] === valor; }
);
}
function obterItens(propriedade, valor) {
var itens = deserializar();
return itens.find((elemento) => {
return elemento[propriedade] === valor;
})
}
function obterTodosOsItens(){
//return deserializar();
return new Promise((resolve, reject) => {
resolve(deserializar());
});
}
function deserializar(){
var itensSerializados = window.localStorage.getItem(key);
return JSON.parse(itensSerializados);
}
function serializar(itens){
var itensSerializados = JSON.stringify(itens);
window.localStorage.setItem(key, itensSerializados);
}
return {
adicionar,
remover,
atualizar,
obterItem,
obterItens,
obterTodosOsItens
};
}