-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain_21009500_VenegasAbarca.bak
96 lines (67 loc) · 5.85 KB
/
main_21009500_VenegasAbarca.bak
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
#lang racket
(require "TDA_fechas_21009500_VenegasAbarca.rkt")
(require "TDA_usuarios_21009500_VenegasAbarca.rkt")
(require "TDA_document_21009500_VenegasAbarca.rkt")
(require "encriptar_21009500_VenegasAbarca.rkt")
(require "TDA_paradigmaDocs_21009500_VenegasAbarca.rkt")
(require "TDA_access_21009500_VenegasAbarca.rkt")
(require "TDA_version_21009500_VenegasAbarca.rkt")
(provide (all-defined-out))
(define (agregarUsuarioNatural lista usuario cond result)(
if (null? lista)
(if (= cond 0)
(agregarUsuarioNatural lista usuario 1 (cons usuario result))
result
)
(if (userName? usuario (getUser (car lista)))
(cons (car lista)(agregarUsuarioNatural (cdr lista) usuario 1 result))
(cons (car lista)(agregarUsuarioNatural (cdr lista) usuario cond result))
)
)
)
(define (checkLogCola userList user pass) (
if (null? userList) #f (
if (userCanLog? (car userList) user pass) #t (checkLogCola (user-next userList) user pass) )))
(define (documentAddAccessList documento accessList) (if (null? accessList) documento (documentAddAccessList (DocumentAddAccess documento (car accessList)) (cdr accessList))))
(define (register paradigmadocs date username password) (
Para-set paradigmadocs 2 (
agregarUsuarioNatural (ParaGetUsers paradigmadocs)
(usuario username password date)
0 user-empty )))
(define (login paradigmadocs user pass funcion) (if (checkLogCola (ParaGetUsers paradigmadocs) user pass) (funcion (logIn paradigmadocs user)) (funcion paradigmadocs) ))
(define (create paradigmadocs ) ( lambda (date nombre contenido)(
if (logedEmpty? paradigmadocs) paradigmadocs (logOut (ParaAddDocument paradigmadocs (documento (+ 1 (ParaLastId paradigmadocs))
(ParaGetLoged paradigmadocs)
date nombre ((ParaGetEncrypt paradigmadocs) contenido)))))))
(define (share paradigmadocs) (lambda (id acc . access) (if (logedEmpty? paradigmadocs) paradigmadocs (
logOut (
ParaEditDocument paradigmadocs id (documentAddAccessList (list-ref (ParaGetDocuments paradigmadocs) (ParaSearchId (ParaGetDocuments paradigmadocs) id 0) ) (append (list acc) access) ) ) )) ))
(define (add paradigmadocs) (lambda (id date text) (if (logedEmpty? paradigmadocs) paradigmadocs (ParaAddVersionDocument (ParaAddTextDocument (logOut paradigmadocs) id text) id (version (ParaAutoIdVersion paradigmadocs id) date (DocumentGetContent (ParaGetDocumentById paradigmadocs id)) ) ) )))
(define (restoreVersion paradigmadocs ) (lambda (idDoc idVersion) (if (logedEmpty? paradigmadocs) paradigmadocs (ParaAddVersionDocument (ParaSetContentDoc paradigmadocs idDoc (verGetContent (ParaGetVersionById paradigmadocs idVersion idDoc)) ) idDoc (version (ParaAutoIdVersion paradigmadocs idDoc) (date 0 0 0) (DocumentGetContent (ParaGetDocumentById paradigmadocs idDoc)) ) ) )))
(define (revokeAllAccesses paradigmadocs) (if (logedEmpty? paradigmadocs) paradigmadocs (
ParaSetDocuments (logOut paradigmadocs) (map (lambda (doc) (DocumentRevokeAccess doc (ParaGetLoged paradigmadocs))) (ParaGetDocuments paradigmadocs)) )) )
(define (search paradigmadocs) (lambda (text) (
if (logedEmpty? paradigmadocs) null (filter (lambda (doc) (string-contains? ((ParaGetDecrypt paradigmadocs)(DocumentGetContent doc)) text )) (filter (lambda (doc) (DocumentIsInvolved? doc (ParaGetLoged paradigmadocs))) (ParaGetDocuments paradigmadocs)) ))))
(define (paradigmadocs->string paradigmadocs ) (if (logedEmpty? paradigmadocs) (ParaInfo paradigmadocs) (ParaInfoUser paradigmadocs (ParaGetLoged paradigmadocs))) )
;pruebas
(define finalIfGrande 3)
(define us1 (usuario "nicovenegas" "1234" (date 03 05 2021)))
(define word (paradigmadocs "word" (date 24 10 2021) encryptFn encryptFn))
(define hoy (date 03 05 2002))
(define DC1 (documento 01 "nicolas" hoy "Documento 1" "hola que tal"))
(define nico (usuario "nico" "1234" (date 03 05 2021)))
(define vic (usuario "vic" 1234444 (date 03 05 2021)))
(define listalista (list (usuario "nico" "1234" (date 03 05 2021))))
(define word1 (register word hoy "nico" "1234"))
(define listaUsers (list nico vic))
(define ac1 (access "nico" #\w))
(define ac2 (access "ale" #\w))
(define ac3 (access "vic" #\e))
(define ac4 (access "loki" #\c))
(define lista (list ac1 ac2 ac3 ac4))
(define word2 ((login word1 "nico" "1234" create) (date 02 03 2021) "doc1" "hola que tal"))
(define word3 (register word2 hoy "ale" "12345"))
(define word4 ((login word3 "nico" "1234" share) 1 (access "“user2”" #\r) ac2 ac1 ac3 ac4))
(define word5 ((login word4 "nico" "1234" add) 1 (date 12 23 2021) " sdfsdfddsfdf"))
(define word6 ((login word5 "nico" "1234" restoreVersion) 1 0))
(define accesso (DocumentGetAccess (ParaGetDocumentById word6 1)) )