예제 #1
0
 def get(self, client_id):
     error = None
     try:
         MSalesDetailTxns.delete_client_data(client_id)
         ItemMaster.delete_client_data(client_id)
         delete_clients_mongo_collections(client_id)
         delete_client_pickle_files(client_id)
     except Exception as e:
         error = str(e) 
     if error:
         return {"error": error}
     return {"cleaned":True}, 200
           
     
예제 #2
0
    def get(self, objectid):
        
        if FS.exists({"_id":ObjectId(objectid)})==True:             
            data = []
            m =FS.get(ObjectId(objectid))
            metadata= (m.metadata)
            client_obj_id= (metadata['client'])
            #print(client_obj_id)
 
            if metadata['category']== "item":
                outputdata =FS.get(ObjectId(objectid)).read()

                for i in (str(outputdata)).split("\\n"):
                    byedata = bytes(i, 'utf-8')
                    d = (byedata.decode("utf-8"))
                    fresh= (str((d.strip('\\r'))) )
                    if len (fresh.split(','))>2:
                        data.append(fresh.split(','))
                #print(data[0])                
                try:
                    #print('item_delete') 
                    client_id = str(client_obj_id) # to convert bson objectId to str
                    #print(client_id)                   
                    if ItemMaster.does_client_exist(client_id):                       
                       ItemMaster.delete_client_data(client_id)
                       delete_clients_mongo_collections(client_id)
                       delete_client_pickle_files(client_id)  
                                         
                    ItemMaster.insert_data_for_items_by_row(data, client_obj_id) #to database
                    #creat_and_dump_dataframe(data, metadata['category'], client_obj_id) #to pikcle
                    #set isProcessed to True in myfiles.files collection
                    metadata.setdefault('isProcessed', True)
                    metadata['isProcessed']=True
                    files_coll = nosqldb['myfiles.files']
                    files_coll.update_one(
                            {'_id':ObjectId(objectid)}, {"$set": {'metadata': metadata}}
                        )
                except Exception as e:
                    print (str(e))
                    #error = e
                    return {"status": False}, 404
                return  True, 200

            elif metadata['category']=="sales":
                outputdata =FS.get(ObjectId(objectid)).read()

                for i in (str(outputdata)).split("\\n"):
                    byedata = bytes(i, 'utf-8')
                    d = (byedata.decode("utf-8"))
                    fresh= (str((d.strip('\\r'))) )
                    if len (fresh.split(','))>4:
                        data.append(fresh.split(','))
                try:
                    client_id = str(client_obj_id) # to convert bson objectId to str
                    #print(client_id)
                    if MSalesDetailTxns.does_client_exist(client_id):
                        MSalesDetailTxns.delete_client_data(client_id)
                        delete_clients_mongo_collections(client_id)
                        delete_client_pickle_files(client_id)                         
                    MSalesDetailTxns.insert_data_for_sales_by_row(data, client_obj_id) #to database
                    #creat_and_dump_dataframe(data, metadata['category'], client_obj_id) #to pickle
                    #set isProcessed to True in myfiles.files collection
                    metadata.setdefault('isProcessed', True)
                    metadata['isProcessed']=True
                    files_coll = nosqldb['myfiles.files']
                    files_coll.update_one(
                            {'_id':ObjectId(objectid)}, {"$set": {'metadata': metadata}}
                        )
                except Exception as e:
                    print (str(e))                   
                    return { "status": False}, 404
                return  True, 200

            else:
                return {"status": False}, 404            

        return {"status": False}, 400