Beispiel #1
0
    def save(self):
        if self.id:
            update_set = ','.join([
                "{key}=%s".format(key='name'), "{key}=%s".format(key='age'),
                "{key}=%s".format(key='address'),
                "{key}=%s".format(key='profession'),
                "{key}=%s".format(key='gender')
            ])
            exp = '''UPDATE {table_name} SET {values} WHERE id=%s RETURNING id'''.format(
                table_name=self.__class__.__name__.lower(),
                values=update_set,
            )
            self.id = db_client.fetch(
                exp, (self.name, self.age, self.address, self.profession,
                      self.gender, self.id))[0][0]
        else:
            exp = '''INSERT INTO {table_name} ({table_fields}) VALUES ({values})'''.format(
                table_name=self.__class__.__name__.lower(),
                table_fields=','.join([
                    '{}'.format('name'),
                    '{}'.format('age'),
                    '{}'.format('address'),
                    '{}'.format('profession'),
                    '{}'.format('gender'),
                ]),
                values=','.join(['%s', '%s', '%s', '%s', '%s']))

            c = db_client.create(exp, (self.name, self.age, self.address,
                                       self.profession, self.gender))
            if c:
                return {}, 404

        return self
Beispiel #2
0
    def save(self):
        if self.id:
            update_set = ','.join([
                "{key}=%s".format(key='username'),
                "{key}=%s".format(key='password'),
                "{key}=%s".format(key='is_admin'),
                "{key}=%s".format(key='active')
            ])
            exp = '''UPDATE {table_name} SET {values} WHERE id=%s RETURNING id'''.format(
                table_name=self.__class__.__name__.lower(),
                values=update_set,
            )
            self.id = db_client.fetch(exp, (self.username, self.password,
                                            self.is_admin, self.active,
                                            self.id))[0][0]
        else:
            exp = '''INSERT INTO {table_name} ({table_fields}) VALUES ({values})'''.format(
                table_name=self.__class__.__name__.lower(),
                table_fields=','.join([
                    '{}'.format('username'),
                    '{}'.format('password'),
                    '{}'.format('is_admin'),
                    '{}'.format('active'),
                ]),
                values=','.join(['%s', '%s', '%s', '%s'])
            )
            self.password = hasher.hash(self.password)
            self.active = True
            self.admin = True
            c = db_client.create(exp, (self.username, self.password, self.is_admin, self.active))
            if c:
                return {}, 404

        return self
    def filter(cls, **kwargs):
        params = []
        values = []

        for key, value in kwargs.items():
            params.append("{}=%s".format(key))
            values.append(value)
        if bool(kwargs.items()):
            exp = '''SELECT * FROM {table_name} WHERE {params} ORDER BY vet_id DESC'''.format(
                table_name=cls.__name__.lower(),
                params=' AND '.join(params),
            )
        else:
            exp = '''SELECT * FROM {table_name} ORDER BY vet_id'''.format(
                table_name=cls.__name__.lower())

        rows = db_client.fetch(exp, values)
        if rows:
            objects = [cls(*row) for row in rows]
            return objects
        else:
            return {}, 404