Exemple #1
0
    def post(self, request):
        code = request.data["code"]

        CLIENT_ID = settings.SPOTIFY_CLIENT_ID
        CLIENT_SECRET = settings.SPOTIFY_CLIENT_SECRET
        REDIRECT_URI = settings.REDIRECT_URI

        auth_info = spotify_wrapper.exchange_code(CLIENT_ID, CLIENT_SECRET,
                                                  REDIRECT_URI, code)
        access_token = auth_info["access_token"]

        spotify = tk.Spotify(access_token)
        user_info = spotify.current_user()

        user_id = user_info.id
        user_email = user_info.email

        user = User.objects.filter(username=user_id)

        # If this is a new user, create an entry for them
        if len(user) == 0:
            new_user = User.objects.create_user(
                user_id, user_email, "", first_name=user_info.display_name)
            new_user.set_unusable_password()
            new_user.save()

            new_user_profile = Profile(user=new_user)
            new_user_profile.save()

            new_user_data = SpotifyApiData(
                user=new_user,
                access_token=auth_info["access_token"],
                refresh_token=auth_info["refresh_token"],
                access_expires_at=timezone.now() +
                datetime.timedelta(seconds=auth_info["expires_in"]),
            )
            new_user_data.save()

            new_user_options = PlaylistOptions(user=new_user)
            new_user_options.save()

            user = new_user
        else:
            user = user[0]

        refresh = RefreshToken.for_user(user)
        return Response({
            "refresh": str(refresh),
            "access": str(refresh.access_token),
        })
Exemple #2
0
def profiles(request):

    if request.method == 'GET':
        user = request.GET.get('user', request.GET.get('user', None))
        title = request.GET.get('title', None)

        profiles = Profile.objects.all()

        serializer = ProfileSerializer(profiles, many=True)
        return Response(data=serializer.data, status=status.HTTP_200_OK)

    if request.method == 'DELETE':
        Profile.objects.all()
        profile.delete()
        return Response(status=status.HTTP_200_OK)

    if request.method == 'POST':
        profiles = request.data.get('profiles', None)
        for profile in profiles:
            user = profile.get('user', None)
            gender = profile.get('gender', None)
            age = profile.get('age', None)
            occupation = profile.get('occupation', None)
            

            if not (user and gender and age):
                continue

            Profile(user=user, gender=gender, age=age, occupation=occupation).save()

        return Response(status=status.HTTP_200_OK)
Exemple #3
0
def apiProfile(request):
    error = 'bad Json: '

    try:
        if request.method == 'GET':
            answer = toJson(Profile.objects.all())
            return HttpResponse(answer)

        data = request.body 
        data = json.loads(data)
        if request.method == 'POST':
            query = data['query']
            email = data['email']
            try:
                if query == 'select':
                    p = Profile.objects.filter(email=email)

                    return HttpResponse(toJson(p))
            except: 
                error = 'Profile ' + email + ' dose not exist.'

        if request.method == 'PUT':
            try:
                email = data['email']
                surname = data['surname']
                name = data['name']
                passowrd = data['password']
                age = data['age']

                p = Profile(email=email,surname=surname,name=name,password=passowrd,age=age)
                p.save()
                return HttpResponse('created/updated ' + email)
            except:
                error = 'missing informations'
        if request.method == 'DELETE':
            email = data['email']
            try:
                p = Profile.objects.filter(email=email)[0].delete()
            except: 
                error = 'Profile ' + email + ' dose not exist.'
            return HttpResponse('deleted ' + email)
    except: 
        return HttpResponse('Bad Json')
Exemple #4
0
def userData(id):
    user = User.query.get(id)
    profile = Profile.query.get(id)
    if user is None:
        raise APIException(
            'El usuario con el id especificado, no fue encontrado.',
            status_code=403)

    data_request = request.get_json()

    try:

        return jsonify(User.serialize(user), Profile.serialize(profile)), 200

    except AssertionError as exception_message:
        return jsonify(msg='Error: {}. '.format(exception_message)), 400
Exemple #5
0
def profile_edit(request):

    token = request.POST.get('token')
    first_name = request.POST.get('first_name')
    last_name = request.POST.get('last_name')
    info = request.POST.get('info')
    email = request.POST.get('email')
    file = request.FILES.get('file')
    roles = request.POST.get('roles')

    try:
        obj_token = Token.objects.get(token=token)
        try:
            user = User.objects.get(username=obj_token.user.username)

            # save profile
            try:
                profile = Profile.objects.get(user__username=user.username)
                url_image = str(profile.image)
                if os.path.exists(url_image):
                    os.remove(url_image)
            except Profile.DoesNotExist:
                profile = Profile(user=user)
            profile.info = info
            if file != None:
                profile.image = file
            profile.save()

            # save user
            user.first_name = first_name
            user.last_name = last_name
            user.email = email

            try:
                user.save()
                user.groups.clear()
                group = Group.objects.get(name=roles)
                group.user_set.add(user)
                response = {'result': 1, 'message': 'Save success'}
            except Group.DoesNotExist:
                group = None
                response = {'result': 0, 'message': 'Can not add group'}
        except User.DoesNotExist:
            response = {'result': 0, 'message': 'Error User'}
    except Token.DoesNotExist:
        response = {'result': 0, 'message': 'Error Token'}
    return JsonResponse(response)
Exemple #6
0
 def create(self, validated_data):
     """ Create for custom profile serializer. """
     profile = Profile()
     username = validated_data.get('username')
     email = validated_data.get('email')
     password = validated_data.get('password')
     skills = validated_data.get('skill_list')
     # projects = validated_data.get('project_list')
     profile.user = User.objects.create_user(
         username=username, email=email, password=password)
     profile.save()
     # Todo: Remove the next statement once refactored
     self.update(profile, validated_data)
     if skills:
         for skill in skills:
             profile.skills.create(**skill)
     # if projects:
     #     for project in projects:
     #         profile.projects.create(**project)
     profile.save()
     return profile
Exemple #7
0
def POST_profiles(request, format):
    """ Respond to the "POST profiles" request.

        We create a new profile for the currently logged-in user.
    """
    # Get the request parameters.

    params = apiHelper.get_params(request, resource_name="profile")

    error = apiHelper.check_params(params,
                                   required_params=["token"],
                                   optional_params=["alias",  "avatar",
                                                    "image1", "image2",
                                                    "image3", "image4",
                                                    "url",    "email",
                                                    "location", "bio"])
    if error != None: return error

    token    = params['token']
    alias    = params.get("alias")
    avatar   = params.get("avatar")
    image1   = params.get("image1")
    image2   = params.get("image2")
    image3   = params.get("image3")
    image4   = params.get("image4")
    url      = params.get("url")
    email    = params.get("email")
    location = params.get("location")
    bio      = params.get("bio")

    # Check that the login token is still valid.

    if not session.validate(token):
        return HttpResponseBadRequest("Invalid token")

    user = session.get_user(token)

    # Create a Profile object with the supplied parameters.

    profile = Profile()
    profile.user     = user
    profile.alias    = alias
    profile.url      = url
    profile.email    = email
    profile.location = location
    profile.bio      = bio
    profile.created_at = datetime.datetime.now()
    profile.updated_at = datetime.datetime.now()
    profile.save()

    if avatar != None:
        profile.avatar_orig.save(avatar.name, avatar)
    if image1 != None:
        profile.image1_orig.save(image1.name, image1)
    if image2 != None:
        profile.image2_orig.save(image2.name, image2)
    if image3 != None:
        profile.image3_orig.save(image3.name, image3)
    if image4 != None:
        profile.image4_orig.save(image4.name, image4)

    # Finally, return the newly-created profile back to the caller.

    return apiHelper.response({'profile' : profile.own_to_dict()},
                              format=format, status=HTTP_RESPONSE_POST_OK)
Exemple #8
0
def save_profile():
    """ Save profile data. """
    user = User.objects.create_superuser("jblouse", "*****@*****.**", "password", first_name="Jared", last_name="Blouse")
    profile = Profile(user=user)
    profile.save()
    return profile, user
Exemple #9
0
 def setUp(self):
     User.objects.create_superuser("jblouse", "*****@*****.**", "password")
     user = User.objects.get(username="******")
     profile = Profile()
     profile.user = user
     profile.save()
     tag = Tag()
     tag.name = "TEST TAG"
     tag.save()
     tag2 = Tag()
     tag2.name = "TEST TAG2"
     tag2.save()
     self.client.force_authenticate(user=user)
     self.user = user
     profile_fk_url = "/profiles/{0}/".format(self.user.profile.id)
     tag_fk_url = "/tags/{0}/".format(tag.id)
     tag2_fk_url = "/tags/{0}/".format(tag2.id)
     self.email_url = reverse("email-list")
     self.email_data = {"user": self.user.pk, "email_address": "*****@*****.**", "email_profile": profile_fk_url}
     self.tag_url = reverse("tag-list")
     self.tag_data = {"user": self.user.pk, "name": "code-tag"}
     self.project_url = reverse("project-list")
     self.project_data = {"description": "test description", "tag": tag_fk_url, "project_profile": profile_fk_url}
     self.certification_url = reverse("certification-list")
     self.cert_data = {"name": "certified", "date_earned": "2014-05-01", "certification_profile": profile_fk_url}
     self.address_url = reverse("address-list")
     self.address_data = {
         "name": "address",
         "street": "123 street",
         "line_2": "Suite 1",
         "city": "Austin",
         "state": "TX",
         "zip_code": "78686",
         "address_profile": profile_fk_url,
     }
     self.address_short_data = {
         "name": "address",
         "city": "Austin",
         "state": "TX",
         "address_profile": profile_fk_url,
     }
     self.profile_url = "/profiles/"
     self.profile_small_data = {
         "username": "******",
         "password": "******",
         "home_phone": "123-456-7890",
         "email": "*****@*****.**",
         "skill_list": [{"name": "test skill"}, {"name": "skill 2"}],
     }
     self.company_url = reverse("employment-list")
     self.company_data = {"company": "Corpseware", "tag": tag2_fk_url, "employment_profile": profile_fk_url}
     self.school_url = reverse("education-list")
     self.school_data = {"school": "Corpseware", "education_profile": profile_fk_url}
     self.headline_url = reverse("headline-list")
     self.headline_data = {"description": "Experienced python developer.", "headline_profile": profile_fk_url}
     self.hobby_url = reverse("hobby-list")
     self.hobby_data = {"description": "Karate", "hobby_profile": profile_fk_url}
     self.reference_url = reverse("reference-list")
     self.reference_data = {"name": "James Smith", "reference_profile": profile_fk_url}
     self.skill_url = reverse("skill-list")
     self.skill_data = {"name": "python", "level": 9, "years_experience": 7, "skill_profile": profile_fk_url}
     self.skill_small_data = {"name": "ruby", "skill_profile": profile_fk_url}
Exemple #10
0
import random
import time

from api.app import db
from api.models import Report, Profile, Image

LAT = 43.655305
LNG = -79.402269

if __name__ == "__main__":
    for i in range(2):
        p = Profile()
        p.license_plate = ''.join([random.choice('ABCDEFGHIJKLMNOP1234567890') for i in range(8)])
        p.vehicle = ''.join(random.choice(['SUV', 'Sedan', 'Truck', 'Van']))

        for j in range(random.randint(2, 4)):
            r = Report(
                reporter_id=random.randint(0, 345245),
                report_type=random.choice(['hit', 'witness', 'red-light', 'collision']), 
                timestamp=1566682828+random.randint(-10000, 10000), 
                longitude=LNG+(random.random()), 
                latitude=LAT+(random.random()), 
                analysis_complete=False, 
                video_id=None
            )

            db.session.add(r)
            db.session.commit()

            p.reports.append(r)
       
Exemple #11
0
    "furui",
    "たかぽん",
    "マルコ",
    "エネル",
    "ひとみちゃん",
    "ヤッホー",
    "さわお",
    "よーへい",
    "ユキタ",
    "ガウディ",
    "サモトラケのニケ",
    "クロネッカー",
    "座敷わらしポンタ",
    "うさかめ",
    "やまねこ",
]

for i, name in enumerate(userNames):
    user = User(
        email=f"vl2id0aow1qkrt{i+1}@nfakdls.com",
        fund=random.randint(1000000, 30000000),
    )
    user.set_password("dammy")
    user.save()

    profile = Profile(
        name=name,
        user=user,
    )
    profile.save()