Ejemplo n.º 1
0
    def patch(self, id):
        util.abort_if_invalid_id_format(id)

        if not validate_testurl(id):
            abort(500, message='Error occurred while syncing', status="error")

        return '', 204
Ejemplo n.º 2
0
    def get(self, args, id):
        util.abort_if_invalid_id_format(id)
        if args['embed']:
            pipeline = [
                {
                    '$match': {
                        '_id': ObjectId(id)
                    }
                },
                {
                    '$lookup': {
                        'from': 'proxies',
                        'localField': '_id',
                        'foreignField': 'providerId',
                        'as': 'proxies'
                    }
                },
            ]
            docs = list(mongo.db.providers.aggregate(
                pipeline))  # pymongo aggregate returns list
            util.abort_if_doesnt_exist(docs)
            return provider_schema_embedded.dump(docs[0])

        doc = mongo.db.providers.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(doc)
        return provider_schema.dump(doc)
Ejemplo n.º 3
0
    def patch(self, id):
        util.abort_if_invalid_id_format(id)
        doc = mongo.db.providers.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(doc)
        # Synchronising Proxy List
        syncProxies(id, 2)

        return '', 204
Ejemplo n.º 4
0
    def patch(self, args, id):
        util.abort_if_invalid_id_format(id)

        if sync_proxy(id):
            if args['validate']:
                validate_proxy(id)
        else:
            abort(404, message='This proxy is currently offline, hence removed', status="error")
        return '', 204
Ejemplo n.º 5
0
    def put(self, proxy_new, id):
        abort_if_provider_doesnt_exist(proxy_new['providerId'])
        util.abort_if_invalid_id_format(id)
        proxy = mongo.db.proxies.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(proxy)

        for k, v in proxy_new.items():
            proxy[k] = v

        mongo.db.proxies.update_one({'_id': ObjectId(id)}, {'$set': proxy})
        return '', 204
Ejemplo n.º 6
0
    def put(self, testurl_new, params, id):
        util.abort_if_invalid_id_format(id)
        testurl = mongo.db.testurls.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(testurl)

        for k, v in testurl_new.items():
            testurl[k] = v

        mongo.db.testurls.update_one({'_id': ObjectId(id)}, {'$set': testurl})

        if params['validate']:
            validate_testurl(testurl['_id'])

        return '', 204
Ejemplo n.º 7
0
    def put(self, provider_new, params, id):
        util.abort_if_invalid_id_format(id)
        provider = mongo.db.providers.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(provider)

        for k, v in provider_new.items():
            provider[k] = v

        mongo.db.providers.update_one({'_id': ObjectId(id)},
                                      {'$set': provider})

        # Synchronising Proxy List based on syncTest param
        syncProxies(id, params['syncTest'])

        return '', 204
Ejemplo n.º 8
0
    def delete(self, id):
        util.abort_if_invalid_id_format(id)
        provider = mongo.db.providers.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(provider)

        #Clean proxytesturls
        proxies = mongo.db.proxies.find({'providerId': provider['_id']})
        for proxy in proxies:
            mongo.db.proxytesturls.delete_many({'proxyId': proxy['_id']})

        # Clean proxies
        mongo.db.proxies.delete_many({'providerId': provider['_id']})

        # Delete provider
        mongo.db.providers.delete_one({'_id': provider['_id']})
        return '', 204
Ejemplo n.º 9
0
    def put(self, configuration_new, id):
        util.abort_if_invalid_id_format(id)
        configuration = mongo.db.configurations.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(configuration)

        for k, v in configuration_new.items():
            configuration[k] = v

        result = mongo.db.configurations.update_one({'_id': ObjectId(id)},
                                                    {'$set': configuration})
        if result.modified_count != 0 and configuration['status']:
            mongo.db.configurations.update_many({'_id': {
                '$ne': ObjectId(id)
            }}, {'$set': {
                'status': False
            }})

        return '', 204
Ejemplo n.º 10
0
    def get(self, args, id):
        util.abort_if_invalid_id_format(id)
        if args['embed']:
            docs = mongo.db.proxies.aggregate([
                {'$match': {'_id': ObjectId(id)}},
                {'$lookup': {'from': 'providers', 'localField': 'providerId', 'foreignField': '_id', 'as': 'provider'}},
                {'$unwind': '$provider'},
                {
                    '$lookup': {
                        'from': 'proxytesturls',
                        'let': {'proxy_id': '$_id'},
                        'pipeline': [
                            {'$match': {'$expr': {'$eq': ['$proxyId', '$$proxy_id']}}},
                            {
                                '$lookup': {
                                    'from': 'testurls',
                                    'let': {'testurl_id': '$testurlId'},
                                    'pipeline': [{'$match': {'$expr': {'$eq': ['$_id', '$$testurl_id']}}}],
                                    'as': 'testurl'
                                }
                            },
                            {'$unwind': '$testurl'},
                            {'$project': {'_id': '$testurl._id', 'url': '$testurl.url',
                                          'validationAttempt': '$testurl.validationAttempt', 'validationTestDate': '$validationTestDate', 'validationTestStatus': '$validationTestStatus'}}
                        ],
                        'as': 'testurls'
                    }
                }
            ])
            docs = list(docs)
            util.abort_if_doesnt_exist(docs)
            return proxy_schema_embedded.dump(docs[0])

        doc = mongo.db.proxies.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(doc)
        return proxy_schema.dump(doc)
Ejemplo n.º 11
0
 def delete(self, id):
     util.abort_if_invalid_id_format(id)
     mongo.db.proxytesturls.delete_many({'proxyId': ObjectId(id)})
     mongo.db.proxies.delete_one({'_id': ObjectId(id)})
     return '', 204
Ejemplo n.º 12
0
    def get(self, args, id):
        util.abort_if_invalid_id_format(id)
        if args['embed']:
            docs = mongo.db.testurls.aggregate([{
                '$match': {
                    '_id': ObjectId(id)
                }
            }, {
                "$lookup": {
                    "from":
                    "proxytesturls",
                    "let": {
                        "testurl_id": "$_id"
                    },
                    "pipeline": [{
                        "$match": {
                            "$expr": {
                                "$eq": ["$testurlId", "$$testurl_id"]
                            }
                        }
                    }, {
                        "$lookup": {
                            "from":
                            "proxies",
                            "let": {
                                "proxy_id": "$proxyId"
                            },
                            "pipeline": [{
                                "$match": {
                                    "$expr": {
                                        "$eq": ["$_id", "$$proxy_id"]
                                    }
                                }
                            }],
                            "as":
                            "proxy"
                        }
                    }, {
                        "$unwind": "$proxy"
                    }, {
                        "$project": {
                            "_id": "$proxy._id",
                            "providerId": "$proxy.providerId",
                            "ip": "$proxy.ip",
                            "port": "$proxy.port",
                            "funcTestDate": "$proxy.funcTestDate",
                            "lastFoundDate": "$proxy.lastFoundDate",
                            "discoveredDate": "$proxy.discoveredDate",
                            "anonymity": "$proxy.anonymity",
                            "validationTestDate": "$validationTestDate",
                            "validationTestStatus": "$validationTestStatus"
                        }
                    }],
                    "as":
                    "proxies"
                }
            }])
            docs = list(docs)
            util.abort_if_doesnt_exist(docs)
            return testurl_schema_embedded.dump(docs[0])

        doc = mongo.db.testurls.find_one({'_id': ObjectId(id)})
        util.abort_if_doesnt_exist(doc)
        return testurl_schema.dump(doc)
Ejemplo n.º 13
0
 def delete(self, id):
     util.abort_if_invalid_id_format(id)
     mongo.db.configurations.delete_one({'_id': ObjectId(id)})
     return '', 204
Ejemplo n.º 14
0
 def get(self, id):
     util.abort_if_invalid_id_format(id)
     doc = mongo.db.configurations.find_one({'_id': ObjectId(id)})
     util.abort_if_doesnt_exist(doc)
     return configuration_schema.dump(doc)