Exemple #1
0
 def GET(self, *args, **kwargs):
     init_model() 
     s = Session()
     q = s.query(self.Model)
     for p in self.params:
         try:
             q = q.filter(getattr(self.Model, p) == kwargs[p])
         except KeyError:
             raise cp.HTTPError(400, 'Bad request: %s not specified' % p)
     items = q.order_by(self.Model.nazwa).all()
     result = [{'id': i.id, 'nazwa': i.nazwa} for i in items]
     cp.response.headers['Content-Type'] = 'application/json'
     return json.dumps(result)
Exemple #2
0
 def POST(self, *args, **kwargs):
     try:
         inp = json.load(cp.request.body)
     except ValueError:
         raise cp.HTTPError('400', 'Malformed JSON')
     init_model()
     s = Session()
     try:
         m = self.Model.from_data(inp, s)
     except ValueError as e:
         raise cp.HTTPError(400, 'Bad input: %s' % e.args[0])
     s.add(m)
     s.commit()
     return json.dumps({'id': m.id})
Exemple #3
0
    def POST(self):
        if ('application/json' not in cp.request.headers['Content-Type']):
            raise cp.HTTPError('400', 'JSON needed') 

        try:
            inp = json.load(cp.request.body)
        except ValueError:
            raise cp.HTTPError('400', 'Malformed JSON')

        init_model()
        s = Session()

        data = inp['data']
        sklep_id = inp['sklep']
        try:
            sklep = s.query(Sklep).filter(Sklep.id == sklep_id).one()
        except orm.exc.NoResultFound:
            raise cp.HTTPError('400', 'Bad shop')

        zakupy = []
        
        for z in inp['zakupy']:
            try:
                produkt = s.query(Produkt).filter(
                    Produkt.id == z['produkt-id']
                ).one()
            except orm.exc.NoResultFound:
                raise cp.HTTPError('400', 'Bad product')
            
            zakupy.append(Zakup(
                data, sklep, produkt, to_dec(z['cena']), to_dec(z['ilosc'])
            ))

        s.commit()
        for z in inp['zakupy']:
            z['id'] = zakupy.pop(0).id

        cp.response.headers['Content-Type'] = 'application/json'
        return json.dumps({"success": True, 'message': '', 'zakupy': inp['zakupy']})
Exemple #4
0
    def zakupy_test(self):
        s = Session()
        d = '2011-1-26'
        sklep_id = s.query(Sklep).all()[0].id
        produkt_ids = [pr.id for pr in s.query(Produkt).all()[0:3]]
        input_data = json.dumps({
            'data': d,
            'sklep': sklep_id,
            'zakupy': [{
                'produkt.id': prid, 'cena': 10, 'ilosc': 1
            } for prid in produkt_ids]
        })
        print input_data

        self.app.post(
            '/zakupy', input_data, {'Content-Type': 'application/json'}
        )
        zakupy = s.query(Zakup).all()
        assert len(zakupy) == 7
        s.query(Zakup).delete()
        s.commit()
Exemple #5
0
    def kategoria_test(self):
        s = Session()
        input_data = json.dumps({'nazwa': 'Lekarstwa'})
        res = self.app.post(
            '/kategorie', input_data, {'Content-Type': 'application/json'}
        )
        print res

        kats = s.query(Kategoria).all()
        print kats
        assert len(kats) == 3
        assert 'Lekarstwa' in [kat.nazwa for kat in kats]
        s.query(Kategoria).delete()
        s.commit()
Exemple #6
0
 def podkategoria_test(self):
     s = Session()
     kategoria_id = s.query(Kategoria).filter(
         Kategoria.nazwa == 'Chemia'
     ).one().id
     input_data = json.dumps({
         'nazwa': 'Kuchenna', 'kategoria_id': kategoria_id
     })
     res = self.app.post(
         '/podkategorie', input_data, {'Content-Type': 'application/json'}
     )
     print res
     subkats = s.query(Podkategoria).filter(
         Podkategoria.kategoria_id == kategoria_id
     ).all()
     assert len(subkats) == 3
     assert 'Kuchenna' in [subkat.nazwa for subkat in subkats]
     s.query(Podkategoria).delete()
     s.commit()