예제 #1
0
    def get(self, id):
        try:

            query = models.Post.get(models.Post.id == id)
            post_schema = models.PostSchema(only=('id', 'content', 'title',
                                                  'author.name', 'author.id',
                                                  'is_url', 'created_at',
                                                  'last_modified'))

            post = post_schema.dump(query).data

            print(post)

            query = (models.Tag.select(models.Tag).join(
                models.PostTags,
                JOIN.RIGHT_OUTER).where(models.PostTags.post == id))

            tag_schema = models.TagSchema(many=True)
            tags = tag_schema.dump(query).data

            post['tags'] = tags

            return jsonify({'post': post})

        except models.DoesNotExist:
            abort(404, message="Record does not exist.")
예제 #2
0
 def get(self, name):
     try:
         query = models.Tag.get(models.Tag.name == name)
         tag_schema = models.TagSchema()
         output = tag_schema.dump(query).data
         return jsonify({'tag': output})
     except models.DoesNotExist:
         return jsonify({'error': {'message': 'record does not exist.'}})
예제 #3
0
 def get(self):
     try:
         query = models.Tag.select().order_by(models.Tag.id)
         tag_schema = models.TagSchema(many=True)
         output = tag_schema.dump(query).data
         return jsonify({'tags': output})
     except:
         pass
예제 #4
0
    def get(self, id):

        try:
            query = (models.Tag.select(models.Tag).join(
                models.PostTags,
                JOIN.RIGHT_OUTER).where(models.PostTags.post == id))

        except:
            abort(404, message="Record does not exist.")

        tag_schema = models.TagSchema(many=True)
        output = tag_schema.dump(query).data
        return jsonify({'tags': output})
def copy_tags(iSourceUUID, iDestinationUUID):
    new_tags = []
    session = Session()
    try:
        temp_dict = session.query(md.Tag). \
                        filter(md.Tag.uuid == iSourceUUID). \
                        all()
        tag_dict = md.TagSchema(many=True).dump(temp_dict)

        for row in tag_dict:
            if gv._DEBUG:
                print("f(x) copy_tags: VALUES BEFORE COPY: {}:{}:{}:{}".format(
                    row["uuid"], row["galaxy"], row["tag"], row["type"]))
            newRecord = (iDestinationUUID, row["galaxy"], row["tag"],
                         row["type"])
            new_tags.append(newRecord)

        return new_tags
    except Exception as error:
        print("f(x) get_parent_child_data: DATABASE ERROR: {}".format(error))
        sys.exit(error)
    finally:
        session.close()
def get_set_all_tags(iUUID):
    ret_list = []
    session = Session()
    try:
        # query = "SELECT * FROM mp_tags WHERE uuid = ?"
        tmp_dict = session.query(md.Tag). \
                        filter(md.Tag.uuid == iUUID). \
                        all()

        tag_dict = md.TagSchema(many=True).dump(tmp_dict)

        # BUILD RETURN LIST
        for tag in tag_dict:
            tmpGalaxy = tag["galaxy"]
            tmpTagVal = tag["tag"]
            tmpTypeTag = tag["type"]
            newTag = MISPTag()

            # POTENTIAL tmpTypeTag Values
            # "ACTOR"
            # "COUNTRY_SPONSOR"
            # "GALAXY"
            # "GALAXY_SYNONIM"
            # "ISO_COUNTRY"
            # "MALWARE"
            # "TARGETS"
            # "TYPE_OF_INCIDENT"
            # "VICTIMS"
            if "tlp:" in tmpTagVal:
                newTag.name = tmpTagVal
            elif tmpTypeTag == "ACTOR":
                newTag.name = "Actor: " + tmpTagVal
                newTag.colour = gv._ACTOR_TAG
            elif tmpTypeTag == "COUNTRY_SPONSOR":
                newTag.name = "Sponsor: " + tmpTagVal
                newTag.colour = gv._COUNTRY_SPONSOR_TAG
            elif tmpTypeTag == "GALAXY":
                if tmpGalaxy != "":
                    newTag.name = "misp-galaxy:" + tmpGalaxy + "=\"" + tmpTagVal + "\""
                else:
                    newTag.name = "Synonym: " + tmpTagVal
                    newTag.colour = gv._GALAXY_SYNONIM_TAG
            elif tmpTypeTag == "GALAXY_SYNONIM":
                newTag.name = "Synonym: " + tmpTagVal
                newTag.colour = gv._GALAXY_SYNONIM_TAG
            elif tmpTypeTag == "ISO_COUNTRY":
                newTag.name = "Country ISO: " + tmpTagVal
                newTag.colour = gv._ISO_COUNTRY_TAG
            elif tmpTypeTag == "MALWARE":
                newTag.name = "Malware: " + tmpTagVal
                newTag.colour = gv._MALWARE_TAG
            elif tmpTypeTag == "TARGETS":
                newTag.name = "Target: " + tmpTagVal
                newTag.colour = gv._TARGETS_TAG
            elif tmpTypeTag == "TYPE_OF_INCIDENT":
                newTag.name = "Type of Incident: " + tmpTagVal
                newTag.colour = gv._TYPE_OF_INCIDENT_TAG
            elif tmpTypeTag == "VICTIMS":
                newTag.name = "Victim: " + tmpTagVal
                newTag.colour = gv._VICTIMS_TAG
            else:
                newTag.name = tmpTagVal
                newTag.colour = gv._OTHER_TAG

            ret_list.append(newTag)

        return ret_list
    except Exception as error:
        print("f(x) get_set_all_tags: DATABASE ERROR: {}".format(error))
        sys.exit(error)
    finally:
        session.close()