Exemple #1
0
def rejestrujLubZaloguj():
    user = request.json  # request.json to nie zwykly obiekt, a slownik (dictionary)
    print('user na wejsciu' + str(user))

    walidujZgodnoscTokenaOrazMailaZFacebookiemLubGoogle(user)

    #sprawdzanie czy uzytkownik o takim emailu juz istnieje w bazie:
    hashed_new_email = hashing.hash_value(user['email'], salt)  # porownywanie
    res = mongo.db.uzytkownicy.find_one({"email": hashed_new_email})

    print(str(res))

    if res is not None:  #LOGOWANIE:
        id = str(res['_id'])
        print('id użytkownika w naszej bazie: ' + str(id))
        access_token = str(create_access_token(identity=id))
        refresh_token = str(create_refresh_token(identity=id))
        return response(
            WynikRejestracji(access_token, refresh_token, False)
        )  # zwracamy do klienta id istniejacego uzytkownika i false - bo uzytkownik juz istnieje w bazie

    #REJESTRACJA:
    #jeśli uzytkownik pojawił się pierwszy raz, dodaj go do bazy:
    user['email'] = hashed_new_email
    usunNiepotrzebneDaneUzytkownika(user)
    user_id = str(
        mongo.db.uzytkownicy.insert_one(user).inserted_id
    )  # dodajemy nowy rekord do bazy oraz otrzymujemy spowrotem id nowego uzytkownika jako string
    print('id nowego użytkownika w naszej bazie: ' + str(user_id))
    access_token = str(create_access_token(identity=user_id))
    refresh_token = str(create_refresh_token(identity=user_id))
    return response(
        WynikRejestracji(access_token, refresh_token, True)
    )  # zwracamy do klienta token nowego uzytkownika i true - bo uzytkownik zostal wlasnie dodany
Exemple #2
0
def odswiezToken():
    id_uzytkownika = get_jwt_identity(
    )  #funkcja podaje id uzytkownika z tokena.
    print('otrzymane id uzytkownika z tokena: ' + str(id_uzytkownika))
    access_token = str(create_access_token(identity=id_uzytkownika))
    refresh_token = str(create_refresh_token(identity=id_uzytkownika))
    return response(WynikOdswiezeniaTokena(access_token, refresh_token, True))
Exemple #3
0
def dodajWynikNinjatestu():
    wynikTestu = request.json
    print('headers: ' + str(request.headers))
    print('REQUEST ' + str(wynikTestu))

    wynikTestu['test'] = 'ninjaTest'

    user_id = get_jwt_identity()
    user = podajUzytkownikaPoId(user_id)

    wynikTestu['user_id'] = user_id

    print('Dane uzytkownika pobranego z bazy przy pomocy jwt tokena: ' + str(user))

    wynikTestu['waga'] = user['waga']
    wynikTestu['wiek'] = user['wiek']
    wynikTestu['wzrost'] = user['wzrost']

    mongo.db.buttonTest.insert_one(wynikTestu)

    wynikTestu['jakasWartosc'] = 5

    mongo.db.testowaTabela.insert_one(wynikTestu)

    return response('OK')
Exemple #4
0
def dodajWynikButtontestu():
    wynikTestu = request.json #pobranie danych zadania od androida - pobrane dane maja strukture slownikowa (mapa)
    print('headers: ' + str(request.headers)) #wyswietlenie w konsoli danych wejeciowych z zadania
    print('REQUEST ' + str(wynikTestu)) #wyswietlenie w konsoli danych wejsciowych z zadania

    # skoro jest to slownik, mozemy odwolac sie do wartosci poprzez mechanizm slownik['klucz'] -> wartosc.
    # w tym przypadku przypisujemy do klucza 'test' wartosc 'buttonTest', by w bazie danych bylo wiadomo ktory to byl test.
    wynikTestu['test'] = 'buttonTest'

    user_id = get_jwt_identity() #dzieki uzyciu malpki @jwt_required mozemy uzyc tej metody by wyluskac id uzytkownika ktory wyslal zadanie.
    user = podajUzytkownikaPoId(user_id) #metoda w project/utils zwracajaca obiekt uzytkownika po jego id.

    wynikTestu['user_id'] = user_id # przypisanie do wyniku testu id uzytkownika

    print('Dane uzytkownika pobranego z bazy przy pomocy jwt tokena: ' + str(user)) #wyswietlenie kontrolne danych w konsoli

    #przypisania aktualnych danych uzytkownika do wyniku testu:
    wynikTestu['waga'] = user['waga']
    wynikTestu['wiek'] = user['wiek']
    wynikTestu['wzrost'] = user['wzrost']

    mongo.db.buttonTest.insert_one(wynikTestu) #wykonanie insertu do bazy danych

    # zwracamy dane uzywajac metody response() z project/utils. Metoda ta zamienia kazdy obiekt z pythona na JSON.
    # jest to potrzebne, by android mogl w poprawny sposob otrzymac dane.
    # obiekt ktory zwracamy, to WynikOperacji z project/models/dto.py ktory pozwala na zdefiniowanie identyfikatora oraz informacji boolowskiej.
    # po stronie androida musi byc utworzona klasa implementujaca w analogiczny sposob obiekt jak ten po stronie pythona.
    return response(WynikOperacji("buttonTestWynik", True))
Exemple #5
0
def aktualizujProfil():
    daneProfilu = request.json  #dane typu waga, wzrost itp
    print('dane profilu' + str(daneProfilu))
    daneProfilu['data_aktualizacji'] = now()
    print('dane profilu' + str(daneProfilu))
    res = mongo.db.uzytkownicy.update_one(
        {'_id': ObjectId(get_jwt_identity())}, {'$set': daneProfilu})
    print('wynik update: ' + str(res))
    return response(WynikOperacji("ustawProfil", True))
Exemple #6
0
def dodajAlkohole():
    alkohole = request.json
    print('headers: ' + str(request.headers))
    print('REQUEST ' + str(alkohole))

    user_id = get_jwt_identity()
    user = podajUzytkownikaPoId(user_id)

    alkohole['user_id'] = user_id

    print('Dane uzytkownika pobranego z bazy przy pomocy jwt tokena: ' +
          str(user))

    mongo.db.buttonAlkohole.insert_one(alkohole)

    return response('OK')
Exemple #7
0
def podajRankingButtonTestu():
    res = mongo.db.uzytkownicy.find_one(
        {"_id": ObjectId('5abab2745b58012b784c8a31')})
    return response(res)
Exemple #8
0
def hello():
    daneWejsciowe = request.json  # imię
    print(daneWejsciowe)
    return response("hello " + daneWejsciowe)
Exemple #9
0
def podajDaneProfilu():
    user_id = ObjectId(get_jwt_identity())
    dane_z_bazy = mongo.db.uzytkownicy.find_one({'_id': user_id})
    return response(dane_z_bazy)