Exemple #1
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)