예제 #1
0
    def delete(self):

        response = self._response.copy()

        try:
            node_id = self.request.matchdict['page_id']
            file_id = self.request.matchdict['file_id']
            PageBanner.get(self.session, (node_id, file_id)).delete()

        except KeyError as e:
            self.log.exception('Missing ID param in the request.')
            self.session.rollback()
            self.request.response.status = 400
            response['msg'] = self.request.translate("Missing ID parameter.")

        except NoResultFound as e:
            msg = "No PageBanner found: %s, %s" % (node_id, file_id)
            self.log.exception(msg)
            self.session.rollback()
            self.request.response.status = 404
            response['msg'] = self.request.translate(msg)

        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['msg'] = self.request.translate("PageBanner was found.")

        finally:
            return response
예제 #2
0
    def batch_update(self):

        response = self._response.copy()

        try:
            for params in json.loads(self.request.params['dataset']):
                item = PageBanner.get(self.session,
                                     (params['page'],
                                      params['banner']['id']))
                item.weight = params['weight']

        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 Background.')
            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'] = []
            response['dataset_length'] = len(response['dataset'])
            response['msg'] = self.request.translate("Background was updated.")
            self.proxy.invalidate(url=item.url)

        finally:
            return response