-
Notifications
You must be signed in to change notification settings - Fork 0
/
usuario.ts
96 lines (86 loc) · 2.29 KB
/
usuario.ts
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import { Album } from "./album";
import { Imagen } from "./imagen";
import { Muro } from "./muro";
export class Usuario {
public nombre: string;
public apellido: string;
// public imagen: string;
public intereses: Array<string>;
public correo: string;
public verificado: boolean;
public verificador: string;
public albums: Array<Album>;
public fotoPerfil: Imagen;
public muro: Muro;
constructor(correo: string) {
this.setCorreo(correo);
this.albums = [];
this.agregarAlbum("Fotos de Perfil");
this.muro = new Muro();
}
setCorreo(correo: string) {
this.correo = correo;
}
generarEnlaceVerificador() {
let guid = (
this.S4() +
this.S4() +
"-" +
this.S4() +
"-4" +
this.S4().substr(0, 3) +
"-" +
this.S4() +
"-" +
this.S4() +
this.S4() +
this.S4()
).toLowerCase();
this.verificador = guid;
return `api/verificar/${guid}`;
}
agregarAlbum(nombre: string) {
var album = this.obtenerAlbum(nombre);
if (!album) {
this.albums.push(new Album(nombre));
}
}
quitarAlbum(nombre: string) {
this.albums.forEach((item, index) => {
if (item.nombre === nombre) {
this.albums.splice(index, 1);
}
});
}
obtenerAlbum(nombre: string): Album {
var album = null;
this.albums.forEach((item, index) => {
if (item.nombre === nombre) {
album = item;
}
});
return album;
}
agregarImagen(albumNombre: string, imagen: Imagen, indice?: number) {
this.obtenerAlbum(albumNombre).agregarImagen(imagen, indice);
}
quitarImagen(albumNombre: string, imagenNombre: string) {
this.obtenerAlbum(albumNombre).quitarImagen(imagenNombre);
}
asignarCaratula(albumNombre: string, imagenNombre: string) {
this.obtenerAlbum(albumNombre).asignarCaratula(imagenNombre);
}
asignarFotoPerfil(nombreImagen: string) {
var imagen = this.obtenerAlbum("Fotos de Perfil").obtenerImagen(
nombreImagen
);
if (imagen) this.fotoPerfil = imagen;
}
publicar(descripcion: string, contenido: string, espublico?: boolean) {
this.muro.agregarPublicacion(descripcion, contenido, espublico);
}
//Private Classes
private S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
}