Esempio n. 1
0
    def do_business(self):
        super(ProcessExternalPaymentCmd, self).do_business()
        dct = self.__transaction_dct
        if self.result:
            self.result.status = XML_STATUS_TO_MODEL_STATUS.get(dct['transaction']['status'])
            cmd = UpdatePaymentAndSaveLog(self.result)
            cmd.execute()
        else:
            self.result = PagSegPayment(code=dct['transaction']['code'],
                                        status=XML_STATUS_TO_MODEL_STATUS.get(dct['transaction']['status']),
                                        total=dct['transaction']['grossAmount'],
                                        net_amount=dct['transaction']['netAmount'])
            payment_key = self.result.put()


            def create_item_cmd(item):
                return _SimpleSave(PagSegItem(description=item['description'],
                                              price=Decimal(item['amount']),
                                              quantity=int(item['quantity'])))

            items = dct['transaction']['items']['item']
            if isinstance(items, dict):
                items = [items]
            items_cmd = [CreatePaymentToItem(payment_key, create_item_cmd(item)) for item in
                         items]
            cmd = CommandParallel(
                CreatePagSegPaymentToLog(payment_key, _SimpleSave(PagSegLog(status=self.result.status))), *items_cmd)

            sender = dct['transaction'].get('sender')
            if sender:
                user = facade.get_user_by_email(sender['email'])()
                if user is None:
                    user = facade.save_user_cmd(sender['email'], sender['name'])()
                cmd.append(SaveToPayment(user,payment_key))
            cmd.execute()
Esempio n. 2
0
 def test_save(self):
     facade.save_user_cmd('*****@*****.**', 'Renzo Nuccitelli', locale='pt_BR', timezone='America/Sao_Paulo')()
     user = facade.get_user_by_email('*****@*****.**')()
     self.assertEqual('*****@*****.**', user.email)
     self.assertEqual('Renzo Nuccitelli', user.name)
     self.assertEqual('pt_BR', user.locale)
     self.assertEqual('America/Sao_Paulo', user.timezone)
     self.assertListEqual([''], user.groups)
Esempio n. 3
0
def salvar(email_dono, **kwargs):
    cmd = facade.get_user_by_email(email_dono)
    salvar_dono_de_escravo =  escravo_facade.salvar_escravo(cmd,**kwargs)
    try:
        salvar_dono_de_escravo.execute()
        return RedirectResponse(router.to_path(index))
    except CommandExecutionException:
        contexto = {'salvar_path': router.to_path(salvar),
                    'escravo': kwargs,
                    'erros': salvar_dono_de_escravo.errors}
        return TemplateResponse(contexto, 'escravos/form.html')
Esempio n. 4
0
def salvar(email, **propriedades):
    get_user_by_email_cmd = facade.get_user_by_email(email)
    salvar_livro_com_autor_cmd = fachada.salvar_livro(get_user_by_email_cmd, **propriedades)
    try:
        salvar_livro_com_autor_cmd()
        return RedirectResponse(router.to_path(index))
    except CommandExecutionException:
        contexto = {'salvar_path': router.to_path(salvar),
                    'erros': salvar_livro_com_autor_cmd.errors,
                    'email': email,
                    'book': propriedades}
        return TemplateResponse(contexto, 'books/form_novo.html')
Esempio n. 5
0
def salvar(email, **propriedades):
    get_user_by_email_cmd = facade.get_user_by_email(email)
    salvar_livro_com_autor_cmd = fachada.salvar_livro(get_user_by_email_cmd,
                                                      **propriedades)
    try:
        salvar_livro_com_autor_cmd()
        return RedirectResponse(router.to_path(index))
    except CommandExecutionException:
        contexto = {
            'salvar_path': router.to_path(salvar),
            'erros': salvar_livro_com_autor_cmd.errors,
            'email': email,
            'book': propriedades
        }
        return TemplateResponse(contexto, 'books/form_novo.html')
    def test_update_user(self):
        email = '*****@*****.**'
        facade.save_user_cmd(email).execute()
        user = facade.get_user_by_email(email)()
        self.assertListEqual([''], user.groups)

        ADMIN = 'ADMIN'
        admin.update(str(user.key.id()), [ADMIN])

        user = user.key.get()
        self.assertListEqual([ADMIN], user.groups)

        MANAGER = 'MANAGER'
        admin.update(str(user.key.id()), [ADMIN, MANAGER])

        user = user.key.get()
        self.assertListEqual([ADMIN, MANAGER], user.groups)
Esempio n. 7
0
    def do_business(self):
        super(ProcessExternalPaymentCmd, self).do_business()
        dct = self.__transaction_dct
        if self.result:
            self.result.status = XML_STATUS_TO_MODEL_STATUS.get(
                dct['transaction']['status'])
            cmd = UpdatePaymentAndSaveLog(self.result)
            cmd.execute()
        else:
            self.result = PagSegPayment(
                code=dct['transaction']['code'],
                status=XML_STATUS_TO_MODEL_STATUS.get(
                    dct['transaction']['status']),
                total=dct['transaction']['grossAmount'],
                net_amount=dct['transaction']['netAmount'])
            payment_key = self.result.put()

            def create_item_cmd(item):
                return _SimpleSave(
                    PagSegItem(description=item['description'],
                               price=Decimal(item['amount']),
                               quantity=int(item['quantity'])))

            items = dct['transaction']['items']['item']
            if isinstance(items, dict):
                items = [items]
            items_cmd = [
                CreatePaymentToItem(payment_key, create_item_cmd(item))
                for item in items
            ]
            cmd = CommandParallel(
                CreatePagSegPaymentToLog(
                    payment_key,
                    _SimpleSave(PagSegLog(status=self.result.status))),
                *items_cmd)

            sender = dct['transaction'].get('sender')
            if sender:
                user = facade.get_user_by_email(sender['email'])()
                if user is None:
                    user = facade.save_user_cmd(sender['email'],
                                                sender['name'])()
                cmd.append(SaveToPayment(user, payment_key))
            cmd.execute()
Esempio n. 8
0
 def test_get_user(self):
     user = mommy.save_one(MainUser, email='*****@*****.**')
     cmd = facade.get_user_by_email('*****@*****.**')
     self.assertEqual(user, cmd())
Esempio n. 9
0
 def test_not_get_user(self):
     cmd = facade.get_user_by_email('*****@*****.**')
     self.assertIsNone(cmd())
Esempio n. 10
0
 def __init__(self, email):
     self.email = email
     super(FindOrCreateUser, self).__init__(facade.get_user_by_email(self.email))
Esempio n. 11
0
 def test_save_when_previous_command_does_not_find_user(self):
     cmd = CommandSequential(facade.get_user_by_email('*****@*****.**'), facade.save_user_cmd('*****@*****.**'))
     user = cmd()
     self.assertIsNotNone(user)
     self.assertEqual(user, MainUser.query_email('*****@*****.**').get())
     self.assertEqual(1, len(MainUser.query().fetch()))