Exemplo n.º 1
0
    def delete(self):

        response = self._response.copy()

        try:
            banner = Banner.get(self.session, int(self.request.matchdict['id']))
            banner.delete()

        except (KeyError, ValueError, NoResultFound) as e:
            self.log.exception('Cannot get the banner to delete.')
            self.session.rollback()
            self.request.response.status = 400
            response['success'] = False
            response['msg'] = str(e)

        except Exception as e:
            self.log.exception('Unknown error.')
            self.session.rollback()
            self.request.response.status = 500
            response['msg'] = str(e)

        else:
            self.session.commit()
            response['success'] = True
            response['dataset'] = [banner.to_dict()]
            response['dataset_length'] = len(response['dataset'])
            response['msg'] = self.request.translate("Banner was deleted.")
            self.proxy.invalidate(url=banner.url)

        finally:
            return response
Exemplo n.º 2
0
    def update(self):

        response = self._response.copy()

        try:
            id_ = int(self.request.matchdict['id'])
            banner = Banner.get(self.session, id_)
            # FIXME: add code to update banner info.

        except KeyError as e:
            self.log.exception('Bad request.')
            self.session.rollback()
            self.request.response.status = 400
            response['success'] = False
            response['msg'] = str(e)

        except NoResultFound as e:
            self.log.exception('Cannot found banner.')
            self.session.rollback()
            self.request.response.status = 400
            response['success'] = False
            response['msg'] = str(e)

        except TypeError as e:
            self.log.exception('Invalid name')
            self.request.response.status = 400
            response['success'] = False
            response['msg'] = str(e)

        except Exception as e:
            self.log.exception('Unknown error.')
            self.session.rollback()
            self.request.response.status = 500
            response['msg'] = str(e)

        else:
            self.session.commit()
            response['success'] = True
            response['dataset'] = [banner.to_dict()]
            response['dataset_length'] = len(response['dataset'])
            response['msg'] = self.request.translate("Banner was updated.")
            self.proxy.invalidate(url=banner.url)

        finally:
            return response