Ejemplo n.º 1
0
def get_or_create_provider():
    provider = Provider.all().filter("id =", PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID, url="http://eurobank.by/", name=u"Евробанк")
        provider.put()

    return provider
Ejemplo n.º 2
0
    def register(self, request, **kwargs):
        self.method_check(request,allowed=['post','options'])

        data = self.deserialize(request,request.body,format=request.META.get('CONTENT_TYPE','application/json'))
        username = data.get('username','')
        password = data.get('password','')
        type = data.get('type','')

        #Basic Validation
        if User.objects.filter(username=username).exists():
            return self.create_response(request,{'success':False,'reason':'Username Existed!',},HttpForbidden)
        new_user = User.objects.create_user(username=username, email=username, password=password)
        new_user.save()

        #Devider User Type => Normal User or Provider
        #user group
        if type == 'provider':
            provider_g = Group.objects.get_or_create(name='provider')[0]
            provider_g.user_set.add(new_user)
            provider = Provider(user=new_user)
            provider.save()
        else:  #By default, register as normal user
            normaluser_g = Group.objects.get_or_create(name='normaluser')[0]
            normaluser_g.user_set.add(new_user)
            normaluser = NormalUser(user=new_user)
            normaluser.save()

        response = self.create_response(request,{'success':True})
    	response['Access-Control-Allow-Origin'] = "*"
        response['Access-Control-Allow-Methods'] = "GET, PUT, POST, PATCH"
        return response
Ejemplo n.º 3
0
    def register_provider(self, message, role, clinic, name):
        """ Adds people into the system 
            JOIN CHW PASSWORD LAST FIRST ALIAS"""

        # If error in role, assume CHW
        try:
            role = Role.objects.get(code=role.lower())
        except Role.DoesNotExist:
            role = Role.objects.get(code="chw")

        # retrieve clinic
        try:
            clinic = Location.objects.get(code=clinic.lower())
        except Location.DoesNotExist:
            clinic = None

        # PHA _must_ be affiliated to a Clinic
        if role.code == "pha" and clinic == None:
            message.respond(
                _(u"Registration Failed. PHA needs correct clinic ID. '%(input)s' is not.") % {"input": clinic}
            )
            return True

        # Create provier
        try:
            alias, fn, ln = Provider.parse_name(name)
            provider = Provider(alias=alias, first_name=fn, last_name=ln, location=clinic, role=role)
            provider.save()

            # attach the reporter to the current connection
            message.persistant_connection.reporter = provider
            message.persistant_connection.save()
        except Exception, e:
            message.respond(_(u"Registration failed: %(error)s") % {"error": e.args})
Ejemplo n.º 4
0
def creating_provider():
    providers = Provider.query.all()
    form = ProviderForm(request.form)
    if request.method == 'POST':
        name = form.name.data
        Provider.save(Provider(name=name))
    return render_template('provider.html', providers=providers, form=form)
Ejemplo n.º 5
0
def get_or_create_provider():
    provider = Provider.all().filter("id =", PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID, url="http://belgazprombank.by/", name=u"Белгазпромбанк")
        provider.put()

    return provider
Ejemplo n.º 6
0
def init_db(request):
    provider = Provider(max_credit=1000,
                        remaining_credit=1000,
                        credit_risk_level=80000,
                        avg_roi=0)
    purchaser = Purchaser(qr_code=111111, credit_risk_level=0)
    provider.save()
    purchaser.save()
    return HttpResponse("success")
Ejemplo n.º 7
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
                            url='http://bps-sberbank.by/',
                            name=u'БПС-Сбербанк')
        provider.put()

    return provider
Ejemplo n.º 8
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
            url='http://credexbank.by',
            name=u'Кредэксбанк')
        provider.put()

    return provider
Ejemplo n.º 9
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
                            url='http://bnb.by/',
                            name=u'Белорусский Народный Банк')
        provider.put()

    return provider
Ejemplo n.º 10
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
            url='http://paritetbank.by',
            name=u'Паритетбанк')
        provider.put()

    return provider
Ejemplo n.º 11
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
                            url='http://alfabank.by/',
                            name=u'Альфа-Банк')
        provider.put()

    return provider
Ejemplo n.º 12
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
            url='http://rrb.by',
            name=u'РРБ-Банк')
        provider.put()

    return provider
Ejemplo n.º 13
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
                            url='http://belinvestbank.by/',
                            name=u'Белинвестбанк')
        provider.put()

    return provider
Ejemplo n.º 14
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
                            url='http://belapb.by/',
                            name=u'Белагропромбанк')
        provider.put()

    return provider
Ejemplo n.º 15
0
def get_or_create_provider():
    provider = Provider.all().filter('id =', PROVIDER_ID).get()
    if provider is None:
        provider = Provider(id=PROVIDER_ID,
            url='http://bveb.by',
            name=u'Белвнешэкономбанк')
        provider.put()

    return provider
Ejemplo n.º 16
0
 def as_insertable(self, provider: Provider, dataset: DataSet, data):
     return {   
         "created_at": datetime.datetime.now(),
         "provider": provider.serialize(),
         "dataset": dataset.serialize(),
         "data": data.serialize()
     }
Ejemplo n.º 17
0
 def wrapper (self, message, *args):
     x = Provider.by_mobile(message.peer)
     if x and x.admin:
         return func(self, message, *args)
     else:
         message.respond(_(u"Sorry, only administrators of the system can perform this action."))
         return False
Ejemplo n.º 18
0
    def test_return_none_when_no_event_happended(self, app):
        # Given
        provider = Provider()

        # When
        last_event = find_latest_sync_end_event(provider)

        # Then
        assert last_event == None
Ejemplo n.º 19
0
    def register_provider (self, message, role, password, last, first, alias, mobile):
        ''' Adds people into the system 
            JOIN CHW PASSWORD LAST FIRST ALIAS'''
        
        # If error in role, assume CHW
        role    = role.upper()
        if role == 'PHA':
            role    = Provider.PHA_ROLE
        else:
            role    = Provider.CHW_ROLE

        # retrieve clinic
        clinic      = Facility.by_alias(password)
        
        # PHA _must_ be affiliated to a Clinic
        if role == Provider.PHA_ROLE and clinic == None:
            message.respond(_(u"Registration Failed. PHA needs correct clinic ID. '%(input)s' is not.") % {'input': password})
            return True

        # Verify alias availability
        dumb    = Provider.by_alias(alias)
        if not dumb == None:
            message.respond(_(u"Registration Failed. Alias already in use by %(prov)s") % {'prov': dumb.display_full()})
            return True

        # Verify mobile slot
        dumb    = Provider.by_mobile(mobile)
        if not dumb == None:
            message.respond(_(u"Registration Failed. mobile number already in use by %(prov)s") % {'prov': dumb.display_full()})
            return True
        
        # Create provier
        provider    = Provider(alias=alias, first_name=first, last_name=last, role=role, active=True, clinic=clinic, mobile=mobile)
        provider.save()

        # send notifications
        message.respond(_(u"SUCCESS. %(prov)s has been registered with alias %(al)s.") % {'prov': provider.display_full(), 'al': provider.alias})
        
        if not provider.mobile == None:
            message.forward(provider.mobile, _(u"Welcome %(prov)s. You have been registered with alias %(al)s.") % {'prov': provider.display_full(), 'al': provider.alias})
    
        return True
Ejemplo n.º 20
0
 def run(self):
     from models import Provider, Level, Game, User, Element
     keyword = self.manager.args.keyword
     api = Provider.get_provider_api()
     images = api.get_images(keyword)
     user = User.objects.filter(super=True)[0]
     game = Game.objects.get(code_name=self.manager.args.game_name)
     level = Level(name=self.manager.args.level_name, game=game, creator=user).save()
     for img in images:
         level.Elements(element=Element(content=img, tags=keyword, name=keyword).save())
     level.save()
Ejemplo n.º 21
0
def posts():
    post = request.get_json()
    provider = Provider(name=post['provider'])
    tags = post['tags']
    tag_refs = []
    for tag in tags:
        tag_id = tag.get('id')
        if tag_id:
            tag_ref = Tag.objects.get(id=tag_id)
        else:
            tag_ref = Tag(label=tag['label'],
                          value=slugify(tag['label'])).save()
        tag_refs.append(tag_ref)
    try:
        provider_ref = Provider.objects.get(name=post['provider'])
    except DoesNotExist:
        provider_ref = Provider(name=post['provider']).save()
    post1 = Post(tags=tag_refs, provider=provider_ref, href=post['href'])
    post1.save()
    schema = PostSchema()
    return jsonify(schema.dump(post1))
Ejemplo n.º 22
0
    def test_raise_errors_if_venue_provider_already_exists(self, app):
        # given
        provider = Provider()
        provider.name = 'Open Agenda'
        provider.localClass = 'OpenAgenda'
        provider.isActive = True
        provider.enabledForPro = True
        offerer = create_offerer()
        user = create_user()
        user_offerer = create_user_offerer(user, offerer, is_admin=True)
        venue = create_venue(offerer, name='Librairie Titelive', siret='77567146400110')
        venue_provider = create_venue_provider(venue, provider, venue_id_at_offer_provider="775671464")
        PcObject.save(provider, user_offerer, venue, venue_provider)

        payload = {
            'providerId': humanize(provider.id),
            'venueId': humanize(venue.id),
            'venueIdAtOfferProvider': '775671464'
        }

        # when
        with pytest.raises(ApiErrors) as errors:
            validate_new_venue_provider_information(payload)

        # then
        assert errors.value.status_code == 400
        assert errors.value.errors['venueProvider'] == ["Votre lieu est déjà lié à cette source"]
Ejemplo n.º 23
0
    def test_returns_true_when_all_information_are_present_and_well_formed(self, app):
        # given
        provider = Provider()
        provider.name = 'Open Agenda'
        provider.localClass = 'OpenAgenda'
        provider.isActive = True
        provider.enabledForPro = True
        offerer = create_offerer()
        user = create_user()
        user_offerer = create_user_offerer(user, offerer, is_admin=True)
        venue = create_venue(offerer, name='Librairie Titelive', siret='77567146400110')
        PcObject.save(provider, user_offerer, venue)

        payload = {
            'providerId': humanize(provider.id),
            'venueId': humanize(venue.id),
            'venueIdAtOfferProvider': '567890'
        }

        # when
        try:
            validate_new_venue_provider_information(payload)
        except ApiErrors:
            # then
            assert False
Ejemplo n.º 24
0
def test_nOffers_with_one_venue_provider(app):
    # given
    provider = Provider()
    provider.name = 'Open Agenda'
    provider.localClass = 'OpenAgenda'
    provider.isActive = True
    provider.enabledForPro = True
    PcObject.save(provider)

    offerer = create_offerer()
    venue = create_venue(offerer)
    venue_provider = create_venue_provider(venue, provider)
    offer_1 = create_offer_with_thing_product(venue,
                                              last_provider_id=provider.id,
                                              id_at_providers='offer1')
    offer_2 = create_offer_with_event_product(venue,
                                              last_provider_id=provider.id,
                                              id_at_providers='offer2')
    offer_3 = create_offer_with_event_product(venue,
                                              last_provider_id=provider.id,
                                              id_at_providers='offer3')
    offer_4 = create_offer_with_thing_product(venue,
                                              last_provider_id=provider.id,
                                              id_at_providers='offer4')
    PcObject.save(offer_1, offer_2, offer_3, offer_4, venue_provider)

    # when
    n_offers = venue_provider.nOffers

    # then
    assert n_offers == 4
Ejemplo n.º 25
0
    def cancel_request (self, message, cancel_id):
        ''' Cancel a transfer request
            CANCEL 908432'''
        
        # retrieve transaction
        try:
            log = TransferLog.objects.get(id=int(cancel_id))
        except TransferLog.DoesNotExist:
            message.respond(_(u"Cancellation failed. Provided transaction ID (%(lid)s) is wrong.") % {'lid': cancel_id})
            return True

        # Check request is legitimate
        peer    = Provider.by_mobile(message.peer).storeprovider_ptr
        if peer == None or (log.sender, log.receiver).count(peer) == 0:
            message.respond(_("Cancellation failed. With all due respect, you are not allowed to perform this action."))
            return True

        # Check is transfer hasn't already been cancelled
        if (TransferLog.STATUS_CANCELLED, TransferLog.STATUS_CONFLICT).count(log.status) != 0 :
            message.respond(_("Cancellation failed. Transfer #%(lid)s dated %(date)s has already been cancelled or is in conflict.") % {'lid': log.id, 'date': log.date.strftime("%b %d %y %H:%M")})
            return True
        
        # cancellation attempt
        other_peer  = log.receiver if peer == log.sender else log.sender

        # if peer is a patient, don't send messages
        try:
            peer_is_patient = not other_peer.direct().mobile
        except Provider.DoesNotExist:
            peer_is_patient = True

        try:
            cancel_transfer(log)
            msg = _(u"CANCELLED Transfer #%(lid)s dated %(date)s by request of %(peer)s. Please forward conflict to Drug Store Head.") % {'lid': log.id, 'date': log.date.strftime("%b %d %y %H:%M"), 'peer': peer.direct().display_full()}
            message.respond(msg)
            if not peer_is_patient:
                message.forward(other_peer.direct().mobile, msg)
        except (ItemNotInStore, NotEnoughItemInStock):
            # goods has been transfered elsewhere.
            msg = _(u"Cancellation failed. %(peer)s has started distributing drugs from transaction #%(lid)s. Contact Drug Store Head.") % {'lid': log.id, 'peer': peer.direct().display_full()}
            message.respond(msg)
            if not peer_is_patient:
                message.forward(other_peer.direct().mobile, msg)
        except Provider.DoesNotExist:
            pass
        return True
Ejemplo n.º 26
0
def search(request):
    try:
        if request.method == "GET":
            lat = request.GET.get("lat")
            long = request.GET.get("long")
            providers = Provider.objects(__raw__={
                            "service_area": {
                                    "$geoIntersects": {
                                        "$geometry": {
                                          "type": "Point" ,
                                          "coordinates": [float(lat), float(long)]
                                        }

                                    }}})
            return json_response(providers.to_json(),200)
        else:
            response = dict()
            response['error'] = "Allowed Methods: GET"
            return json_response(json.dumps(response),400)
    except Exception as e:
        return error_handler(e)
Ejemplo n.º 27
0
    def test_raise_errors_if_provider_is_not_enable_for_pro(self, app):
        # given
        provider = Provider()
        provider.name = 'Open Agenda'
        provider.localClass = 'OpenAgenda'
        provider.isActive = True
        provider.enabledForPro = False
        PcObject.save(provider)

        payload = {
            'providerId': humanize(provider.id),
            'venueId': 'B9',
            'venueIdAtOfferProvider': '567890'
        }

        # when
        with pytest.raises(ApiErrors) as errors:
            validate_new_venue_provider_information(payload)

        # then
        assert errors.value.status_code == 400
        assert errors.value.errors['provider'] == ["Cette source n'est pas disponible"]
    def test_return_venue_provider_when_exists(self, app):
        # given
        provider = Provider()
        provider.name = 'Open Agenda'
        provider.localClass = 'OpenAgenda'
        provider.isActive = True
        provider.enabledForPro = True
        offerer = create_offerer()
        user = create_user()
        user_offerer = create_user_offerer(user, offerer, is_admin=True)
        venue = create_venue(offerer,
                             name='Librairie Titelive',
                             siret='77567146400110')
        venue_provider = create_venue_provider(
            venue, provider, venue_id_at_offer_provider="775671464")
        PcObject.save(provider, user_offerer, venue, venue_provider)

        # when
        existing_venue_provider = find_venue_provider(provider.id, venue.id,
                                                      "775671464")

        # then
        assert existing_venue_provider == venue_provider
Ejemplo n.º 29
0
def test_nOffers_with_two_venue_providers_from_different_providers(app):
    # given
    provider1 = Provider()
    provider1.name = 'Open Agenda'
    provider1.localClass = 'OpenAgenda'
    provider1.isActive = True
    provider1.enabledForPro = True
    provider2 = Provider()
    provider2.name = 'TiteLive'
    provider2.localClass = 'TiteLive'
    provider2.isActive = True
    provider2.enabledForPro = True
    PcObject.save(provider1, provider2)

    offerer = create_offerer()
    venue = create_venue(offerer)
    venue_provider1 = create_venue_provider(venue, provider1)
    venue_provider2 = create_venue_provider(venue, provider2)
    offer_1 = create_offer_with_thing_product(venue,
                                              last_provider_id=provider1.id,
                                              id_at_providers='offer1')
    offer_2 = create_offer_with_event_product(venue,
                                              last_provider_id=provider2.id,
                                              id_at_providers='offer2')
    offer_3 = create_offer_with_event_product(venue,
                                              last_provider_id=provider1.id,
                                              id_at_providers='offer3')
    offer_4 = create_offer_with_thing_product(venue,
                                              last_provider_id=provider1.id,
                                              id_at_providers='offer4')
    PcObject.save(offer_1, offer_2, offer_3, offer_4, venue_provider1,
                  venue_provider2)

    # when
    n_offers_for_venue_provider1 = venue_provider1.nOffers
    n_offers_for_venue_provider2 = venue_provider2.nOffers

    # then
    assert n_offers_for_venue_provider1 == 3
    assert n_offers_for_venue_provider2 == 1
Ejemplo n.º 30
0
 def post(self):
     user = users.get_current_user()
     if user:
         prov = Provider.all().filter('user =', user)
         prov[0] = {}
Ejemplo n.º 31
0
    def setUp(self):

       u = get_user_model()()
       u.id = 1
       u.username = '******'
       u.first_name = 'test'
       u.last_name = 'test'
       u.email = 'test'
       u.set_password('test') 
       u.save()

       p = Provider()
       p.id = 1
       p.user = u
       p.name = "test"  
       p.email = "*****@*****.**" 
       p.phone = 12312312
       p.currency = "USD"
       p.language = "DE"
       p.save()

       u = get_user_model()()
       u.id = 2
       u.username = '******'
       u.first_name = 'test2'
       u.last_name = 'test2'
       u.email = '*****@*****.**'
       u.set_password('test') 
       u.save()

       p = Provider()
       p.id = 2
       p.user = u
       p.name = "test2"  
       p.email = "*****@*****.**" 
       p.phone = 123123212
       p.currency = "USD"
       p.language = "EN"
       p.save()

       self.url = reverse("provider:provider-detail",kwargs={"pk":1})
Ejemplo n.º 32
0
    def test_get_enabled_providers_for_pro(self, app):
        # given
        provider1 = Provider()
        provider1.name = 'Open Agenda'
        provider1.localClass = 'OpenAgenda'
        provider1.isActive = False
        provider1.enabledForPro = False

        provider2 = Provider()
        provider2.name = 'Tite Live'
        provider2.localClass = 'TiteLive'
        provider2.isActive = True
        provider2.enabledForPro = True
        PcObject.save(provider1, provider2)

        # when
        enabled_providers = get_enabled_providers_for_pro()

        # then
        assert enabled_providers == [provider2]

        # clean
        db.session.delete(provider1)
        db.session.delete(provider2)
        db.session.commit()
Ejemplo n.º 33
0
def service_provider(request, id= ''):
    """
        endpoint: /provider/<id>/
        method: GET
        response: Service provider object stored in Database
        method: Post
        body: Json (name,email,phone,currency)
        response: 201, Newly created Service provider object
        method: Put
        body: Json (name,email,phone,currency)
        response: 200, Updated Service Provider Object
        method: Delete
        response: 204, No content
        ________________________________________________________________________________________
        endpoint: /provider/all
        method: GET
        response: Array of all service provider objects
    """
    try:
        if request.method == "POST":
            data = json.loads(request.body)
            provider = Provider(name=data['name'], email=data['email'], phone=data['phone'],
                                currency=data['currency'],service_area=[])
            provider.save()
            return json_response(provider.to_json(), 201)
        if request.method == "GET":
            if id is None or id == '':
                providers= Provider.objects.all()
                return json_response(providers.to_json(), 200)
            else:
                provider = Provider.objects.get(pk=id)
                return json_response(provider.to_json(), 200)
        provider = Provider.objects.get(pk=id)
        if request.method == "PUT":
            data = json.loads(request.body)
            provider.name = data['name']
            provider.email = data['email']
            provider.phone = data['phone']
            provider.currency = data['currency']
            provider.save()
            return json_response(provider.to_json(), 200)
        if request.method == "DELETE":
            provider.delete()
            return json_response('',204)
    except Exception as e:
        response = error_handler(e)
        return response
Ejemplo n.º 34
0
 def wrapper (self, message, *args):
     if Provider.by_mobile(message.peer):
         return func(self, message, *args)
     else:
         message.respond(_(u"Sorry, only registered users can access this program."))
         return True