def get(self):
        connection = sqlite3.connect('data.db')
        cursor = connection.cursor()

        query = "SELECT * FROM campaigns"
        result = cursor.execute(query)

        campaigns = []
        for row in result:
            campaign_model = CampaignModel(row[0], row[1], row[2], row[3])
            campaigns.append(campaign_model.json())

        connection.close()
        return {'campaigns': campaigns}
Exemple #2
0
 def get(self, campaign_name):
     campaign = CampaignModel.find_by_name(campaign_name)
     try:
         if campaign:
             return campaign.json()
     except Exception as e:
         return {"message": "Record not found'{}'".format(e)}, 404
Exemple #3
0
    def put(self, token):
        try:
            data = self.parser.parse_args()
            validateObj = CampaignModel.validateData(data, request)
            if type(validateObj) is dict:
                return {"success": False, "errors": validateObj}, 400

            campaign_id = decodeID(token)
            campaign = CampaignModel.find_by_id(campaign_id)
            if not campaign or campaign.token != token:
                return {"success": False, 'message': 'Record Not Found'}, 404

            campaign.category_name = data['campaign_name']
            campaign.description = data['description']
            campaign.brand_id = data['brand_id']
            campaign.product_ids = data['product_ids']
            campaign.currency_id = data['currency_id']
            campaign.budget_amount = data['budget_amount']
            campaign.objective_id = data['objective_id']
            campaign.kpi_id = data['kpi_id']
            campaign.target_locations = data['target_locations']
            campaign.exclude_locations = data['exclude_locations']
            campaign.modified_on = datetime.now()
            campaign.modified_by = 1
            campaign.modified_on = datetime.now()
            campaign.modified_by = 1
            ########
            campaign_name = data['campaign_name']
            description = data['description']
            target_locations = data['target_locations']
            exclude_locations = data['exclude_locations']
            if (campaign_name.strip() and description.strip()
                    and target_locations.strip()
                    and exclude_locations.strip()):
                campaign.save_to_db()
            else:
                return {
                    "success": False,
                    "message": "String Should not be empty"
                }

            return {
                "success": True,
                "message": "Record updated successfully."
            }, 200
        except Exception as e:
            return {"success": False, "message": str(e)}
Exemple #4
0
 def get(cls, token):
     try:
         campaign_id = decodeID(token)
         campaign = CampaignModel.find_by_id(campaign_id)
         if not campaign or campaign.token != token:
             return {"success": False, 'message': 'Record Not Found'}, 404
         return campaign.json(), 200
     except Exception as e:
         return {"success": False, "message": str(e)}
Exemple #5
0
    def delete(cls, campaign_name):
        campaign = CampaignModel.find_by_name(campaign_name)
        if campaign:
            campaign.deleted_by = 1
            campaign.deleted_on = datetime.now()
            campaign.save_to_db()
            #campaign.delete_from_db()
            return {'message': 'Record deleted'}

        else:
            return {"Message": "Record Not FOUND"}
Exemple #6
0
    def mutate(root, info, company_id, product_id, campaign_data):
        company = CompanyModel.find_by_id(company_id)
        if not company:
            raise Exception("Company not found!")

        product = ProductModel.find_by_id(product_id)
        if not product:
            raise Exception("Product not found!")

        campaign = CampaignModel(**campaign_data, product=product, company=company)
        campaign.save()

        return NewCampaign(campaign=campaign)
Exemple #7
0
    def delete(cls, token):
        try:
            campaign_id = decodeID(token)
            campaign = CampaignModel.find_by_id(campaign_id)
            if not campaign or campaign.token != token:
                return {"success": False, 'message': 'Record Not Found'}, 404

            campaign.deleted_by = 1
            campaign.deleted_on = datetime.now()
            campaign.save_to_db()
            #campaign.delete_from_db()
            return {"success": True, 'message': 'Record deleted.'}, 200
        except Exception as e:
            return {"success": False, "message": str(e)}
Exemple #8
0
 def put(self, campaign_name):
     data = self.parser.parse_args()
     campaign = CampaignModel.find_by_name(campaign_name)
     if campaign:
         campaign.description = data['description']
         campaign.brand_id = data['brand_id']
         campaign.product_ids = data['product_ids']
         campaign.currency_id = data['currency_id']
         campaign.budget_amount = data['budget_amount']
         campaign.objective_id = data['objective_id']
         campaign.kpi_id = data['kpi_id']
         campaign.target_locations = data['target_locations']
         campaign.exclude_locations = data['exclude_locations']
         campaign.modified_on = datetime.now()
         campaign.modified_by = 1
     else:
         return {"Message": "Record Not FOUND"}
     campaign.save_to_db()
     return campaign.json()
Exemple #9
0
    def post(self, campaign_name):
        db.create_all()
        db.session.commit()
        if CampaignModel.find_by_name(campaign_name):
            return {
                'message':
                "An Record with name '{}' already exists.".format(
                    campaign_name)
            }, 400

        data = self.parser.parse_args()

        campaign = CampaignModel(
            campaign_name,
            **data,
        )
        campaign.created_by = 1
        campaign.created_on = datetime.now()
        campaign.modified_by = 0
        campaign.deleted_by = 0
        campaign.start_date = datetime.now()
        campaign.end_date = datetime.now()
        campaign.days = 1
        try:

            campaign.save_to_db()
        except Exception as e:
            return {
                "message":
                "An error occurred while inserting the Record.'{}'".format(e)
            }

        return campaign.json(), 201
Exemple #10
0
    def post(self):
        data = self.parser.parse_args()
        campaign = CampaignModel(**data)
        campaign.created_by = 1
        campaign.created_on = datetime.now()
        campaign.modified_by = 0
        campaign.deleted_by = 0
        campaign.modified_on = None
        campaign.deleted_on = None

        try:
            validateObj = CampaignModel.validateData(data, request)

            if type(validateObj) is dict:
                return {"success": False, "errors": validateObj}, 400

            if CampaignModel.find_by_name(data['campaign_name']):
                return {
                    "success": False,
                    "message":
                    "A campaign with that Record Name already exists"
                }, 400
            campaign_name = data['campaign_name']
            description = data['description']
            target_locations = data['target_locations']
            exclude_locations = data['exclude_locations']
            ########################  CHECKING STRING HAS VALUE OR NOT###################################################
            if (campaign_name.strip() and description.strip()
                    and target_locations.strip()
                    and exclude_locations.strip()):
                campaign.save_to_db()
                campaign.token = encodeID(campaign.campaign_id)
                campaign.save_to_db()

            else:
                return {
                    "success": False,
                    "message": "String Should not be empty"
                }

        except Exception as e:
            return {
                "message":
                "An error occurred creating the Record.'{}'".format(e)
            }, 500
        return campaign.json(), 201