Service - Forum Tree

From Izara Wiki
Jump to navigation Jump to search

Overview

Tree used to categorize forum topics. Forum topics can then be the hasPrimarySubject of a comment to begin a new topic in the forum.

Many forum trees can be created with their own forum topic hierarchy.

Forum topics can be linked to by anywhere in any forumTree.

Repository

https://bitbucket.org/izara-core-shared/izara-core-shared-forum-tree

Object Schemas

Additional Information
Per Service Schemas

objType

forumTree

{
	objectType: "forumTree",
	canDelete: false,
	addOnDataStructure: [
		{
			type:"versionedData",
			versionedDataLabel: "forumTreeConfig",
			storageResourceTag : "myGraph",
			fieldNames: {
				"forumName":{
					type: "string",
					requiredOnCreate: true
					canUpdate: true,
				},
			}
        },
	],
	storageResources: {
		myGraph: {
			storageType: "graph",
			graphServerTag: "GraphHandler"
		}
    },
    fieldNames: {
		forumTreeId: {
			type: "string",
			randomOnCreate: true,
			canUpdate: false,
			storageResourceTags: ['myGraph']
		}
    },
    identifiers: [
		{
			type: "identifier",
			fieldName: "forumTreeId"
		}
    ]
}

forumTopicLink

{
	objectType: "forumTopicLink",
	canDelete: true,
	storageResources: {
		myGraph: {
			storageType: "graph",
			graphServerTag: "GraphHandler"
		}
    },
    fieldNames: {
		forumTopicLinkId: {
			type: "string",
			randomOnCreate: true,
			canUpdate: false,
			storageResourceTags: ['myGraph']
		}
    },
    identifiers: [
		{
			type: "identifier",
			fieldName: "forumTopicLinkId"
		}
    ]
}
  • Links a forumTopic as a child of another forumTopic or under a forumTree

forumTopic

{
	objectType: "forumTopic",
	canDelete: true,
	addOnDataStructure: [
		{
			type:"versionedData",
			versionedDataLabel: "forumTopicConfig",
			storageResourceTag : "myGraph",
			fieldNames: {
				"forumTopicName":{
					type: "string",
					requiredOnCreate: true
					canUpdate: true,
				},
			}
        },
	],
	storageResources: {
		myGraph: {
			storageType: "graph",
			graphServerTag: "GraphHandler"
		}
    },
    fieldNames: {
		forumTopicId: {
			type: "string",
			randomOnCreate: true,
			canUpdate: false,
			storageResourceTags: ['myGraph']
		}
    },
    identifiers: [
		{
			type: "identifier",
			fieldName: "forumTopicId"
		}
    ]
}

Object Relationships

hasChildTopic

{
	"hasChildTopic": { // also "hasDisabledChildTopic"
		fieldNames: {
		},
		storageResources: {
			myGraph: {
				storageType: "graph",
				graphServerTag: "GraphHandler"			
			}
		},
		links: [
			{
				storageResourceTags: ["myGraph"],
				from: {
					objType: {
						serviceTag: "forumTree",					
						objectType: "forumTree"
					},
					linkType: "many",
					handler: true					
				},
				to: {
					objType: {
						serviceTag: "forumTree",				
						objectType: "forumTopicLink"					
					},				
					linkType: "many"
				}
			}
			{
				storageResourceTags: ["myGraph"],
				from: {
					objType: {
						serviceTag: "forumTree",					
						objectType: "forumTopic"
					},
					linkType: "many",
					handler: true					
				},
				to: {
					objType: {
						serviceTag: "forumTree",				
						objectType: "forumTopicLink"					
					},				
					linkType: "many"
				}
			}
		]
	}
}

isTopic

{
	"isTopic": {
		fieldNames: {
		},
		storageResources: {
			myGraph: {
				storageType: "graph",
				graphServerTag: "GraphHandler"			
			}
		},
		links: [
			{
				storageResourceTags: ["myGraph"],
				from: {
					objType: {
						serviceTag: "forumTree",					
						objectType: "forumTopicLink"
					},
					linkType: "many",
					handler: true					
				},
				to: {
					objType: {
						serviceTag: "forumTree",				
						objectType: "forumTopic"					
					},				
					linkType: "many"
				}
			}
			{
				storageResourceTags: ["myGraph"],
				from: {
					objType: {
						serviceTag: "forumTree",					
						objectType: "forumTopic"
					},
					linkType: "many",
					handler: true					
				},
				to: {
					objType: {
						serviceTag: "forumTree",				
						objectType: "forumTopic"					
					},				
					linkType: "many"
				}
			}
		]
	}
}

Working documents

Forum Tree