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
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