예제 #1
0
def patchFile(request, id):

    fileGW = FileGateway(database)
    patched_properties = json.loads(request.body)
    if fileGW.patchFile(id, patched_properties):
        return JsonResponse({}, status=200, safe=False)
    return JsonResponse({}, status=500, safe=False)
예제 #2
0
def updateFile(request, id):
    respuesta = {}
    fileGW = FileGateway(database)
    file = File(json.loads(request.POST['file']))
    fileJson = fileGW.updateFile(id, file)
    respuesta['file'] = fileJson
    return JsonResponse(respuesta, status=200, safe=False)
예제 #3
0
def signup(request):
    if request.method == 'POST':
        respuesta = {}

        userGW = UserGateway(database)
        fileGW = FileGateway(database)
        filesystem = Filesystem(database)
        userJson = json.loads(request.POST['user'])

        user = User(userJson)
        user.set_password(security.createPassword(user.get_password()))
        if not userGW.exists(user.get_nick()):
            if userGW.insertUser(user):
                file = filesystem.create(user.get_nick())
                if fileGW.insertFile(file):
                    respuesta['user'] = user.toJSON()
                    del respuesta['user']['password']
                    respuesta['root'] = file.toJSON()
                    respuesta['root']['hijos'] = []
                    respuesta['token'] = security.generateJWT(user.get_nick())
                    respuesta['totalModelos'] = 0

                    return JsonResponse(respuesta, status=201, safe=False)
            return JsonResponse(respuesta, status=500, safe=False)
        return JsonResponse(respuesta, status=409, safe=False)
    return JsonResponse({}, status=404, safe=False)
예제 #4
0
 def getNumberOfModels(self, id):
     fileGW = FileGateway(self.db)
     numberOfFiles = len(
         list(fileGW.listFiles({
             'tipo': 'modelo',
             'idUsuario': id
         })))
     return numberOfFiles
예제 #5
0
 def getNode(self, id):
     fileGW = FileGateway(self.db)
     file = fileGW.getFile(id)
     if file is not None:
         if file['tipo'] == 'carpeta':
             file['hijos'] = fileGW.listFiles({'idPadre': id})
         return file
     return None
예제 #6
0
def deleteFiles(request):
    respuesta = {}
    fileGW = FileGateway(database)
    list_files = json.loads(request.body)['files']
    print(list_files)
    for i in range(len(list_files)):
        fileGW.deleteFile(list_files[i])
    return JsonResponse(respuesta, status=200, safe=False)
예제 #7
0
    def move(self, idModel, idFolder):
        fileGW = FileGateway(self.db)
        folder = File(fileGW.getFile(idFolder))
        file = File(fileGW.getFile(idModel))

        idNew = idFolder + "_" + str(folder.get_next())
        next = folder.get_next() + 1
        fileGW.patchFile(idFolder, {'next': next})
        fileGW.patchFile(idModel, {'idPadre': idFolder, 'id': idNew})
        fileGW.updateFiles({'idPadre': idModel}, {'idPadre': idNew})
예제 #8
0
def login(request):
    if request.method == 'POST':
        respuesta = {}

        userGW = UserGateway(database)
        fileGW = FileGateway(database)
        filesystem = Filesystem(database)
        userJson = json.loads(request.POST['user'])

        user = User(userGW.getUser(userJson['nick']))
        if user is not None:
            print(user.get_password())
            if security.verifyPassword(userJson['password'],
                                       user.get_password()):
                root = filesystem.getNode(user.get_nick())
                respuesta['user'] = user.toJSON()
                del respuesta['user']['password']
                respuesta['root'] = root
                respuesta['token'] = security.generateJWT(user.get_nick())
                respuesta['totalModelos'] = filesystem.getNumberOfModels(
                    user.get_nick())

                return JsonResponse(respuesta, status=200, safe=False)
            return JsonResponse({}, status=401, safe=False)
        return JsonResponse(respuesta, status=404, safe=False)
    return JsonResponse({}, status=404, safe=False)
예제 #9
0
def move(request):
    if request.method == 'POST':
        respuesta = {}

        userGW = UserGateway(database)
        fileGW = FileGateway(database)
        filesystem = Filesystem(database)
        datos = json.loads(request.POST['datos'])

        filesystem.move(datos['idModel'], datos['idFolder'])
        return JsonResponse({}, status=200, safe=False)
    return JsonResponse({}, status=404, safe=False)
예제 #10
0
 def deleteNode(self, id):
     print(id)
     fileGW = FileGateway(self.db)
     file = fileGW.getFile(id)
     res = fileGW.deleteFile(id)
     if file['tipo'] == 'carpeta':
         fileGW.deleteFiles({'idPadre': id})
     if res:
         return True
     return False
예제 #11
0
def listFiles(request):
    filters = json.loads(request.GET.dict())
    fileGW = FileGateway(database)
    files = fileGW.listFiles(filters)
    return JsonResponse({'files': files}, status=200, safe=False)
예제 #12
0
def insertFile(request):
    fileGW = FileGateway(database)
    file = File(json.loads(request.POST['file']))
    if fileGW.insertFile(file):
        return JsonResponse({'file': file.toJSON()}, status=201, safe=False)
    return JsonResponse({}, status=500, safe=False)