Beispiel #1
0
  def post(self, channelid):
    """Handles a POST to the /channel/{id}/subscriber/ resource
    which is to add a subscriber to the channel
    """
#   Get channel first
    channel = Channel.get_by_id(int(channelid))
    if channel is None:
      self.response.out.write("Channel %s not found" % (channelid, ))
      self.response.set_status(404)
      return

#   Add subscriber
    name = self.request.get('name').rstrip('\n')
    resource = self.request.get('resource').rstrip('\n')
    subscriber = Subscriber()
    subscriber.channel = channel
    subscriber.name = name
    subscriber.resource = resource
    subscriber.put()
#   Not sure I like this ... re-put()ing
    if len(subscriber.name) == 0:
      subscriber.name = 'subscriber-' + str(subscriber.key().id())
      subscriber.put()

#   If we've got here from a web form, redirect the user to the 
#   channel subscriber resource, otherwise return the 201
    if self.request.get('subscribersubmissionform'):
      self.redirect(self.request.path_info)
    else:
      self.response.headers['Location'] = self.request.url + str(subscriber.key().id()) + '/'
      self.response.set_status(201)
Beispiel #2
0
def index(request):

    if request.method == 'POST':

        email = request.POST['email']
        name = request.POST['name']
        mobile_number = request.POST["mobile_number"]

        try:
            Subscriber.objects.get(email_address=email)
            user_exists = True
        except:
            user_exists = False

        if user_exists:

            data = {'status': 0}
            return JsonResponse(data)

        if len(mobile_number) == 10:
            try:

                number = int(mobile_number)

                if re.match(
                        r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)",
                        email):

                    subscriber = Subscriber()
                    subscriber.email_address = email
                    subscriber.name = name
                    subscriber.mobile_number = '+91' + mobile_number
                    subscriber.save()
                    data = {
                        'status': 1,
                        'email': email,
                        'name': name,
                        'mobile_number': mobile_number
                    }
                    return JsonResponse(data)

                else:

                    data = {'status': 3}
                    return JsonResponse(data)

            except ValueError:
                data = {'status': 2}
                return JsonResponse(data)

        else:
            data = {'status': 2}
            return JsonResponse(data)

    return render(request, 'Subscribe/index.html')
Beispiel #3
0
def add_subcriber(data, instance_id=""):
    if instance_id:
        subscriber = Subscriber.get_by_id(str(instance_id))
    else:
        subscriber = Subscriber()

    if data["name"]:
        subscriber.name = data["name"]
    if data["email"]:
        subscriber.email = data["email"]
    if data["fb_id"]:
        subscriber.fb_id = data["fb_id"]
    if data["distribution"]:
        subscriber.distribution = ndb.Key("Distribution", data["distribution"])

    subscriber.put()
    return subscriber