Commit a2ec327a authored by Jayaprakash n's avatar Jayaprakash n
Browse files

Issue #SB-22862 feat: Collection CSV Hierarchy feature - config file changes based code update

parent 0486720d
s-debug 4.1.0_fixes AmiableAnil-patch-1 Gcloud_copy Gcloud_fix Remove_unwantedCode_Gcloud_fix actors-test bulk-upload-comptenecy-mapping bulk-upload-excelsheet bulk-upload-test_excel bulk_upload csp-migration dependabot/maven/platform-core/platform-telemetry/ch.qos.logback-logback-core-1.2.9 dependabot/maven/search-api/search-core/org.apache.httpcomponents-httpclient-4.5.13 knowlg-friday knowlg-oneclick local-setup-fix local-setup-kube m-4.2.0 master patch-1 patch-2 patch-3 poc_bulk_upload qs-schema rahul_bulk_upload_postgres release-4.1.0 release-4.10.0 release-4.10.1 release-4.2.0 release-4.3.0 release-4.4.0 release-4.5.0 release-4.6.0 release-4.7.0 release-4.7.0-debug release-4.8.0 release-4.8.0-debug release-4.9.0 release-4.9.1 release-5.0.0 release-5.0.1 release-5.1.0 release-5.1.0-content release-5.2.0 release-5.3.0 revert-718-visiblity-private-api revert-719-assessment-private-read-api revert-720-visiblity-public-search-api revert-721-visiblity-private-search-api review-4.1.0 release-5.2.0_RC2 release-5.2.0_RC1 release-5.1.0_RC1 release-5.0.0_RC2 release-5.0.0_RC1 release-4.10.0_RC2 release-4.10.0_RC1 release-4.9.1_RC1 release-4.9.0_RC8 release-4.9.0_RC7 release-4.9.0_RC6 release-4.9.0_RC5 release-4.9.0_RC4 release-4.9.0_RC3 release-4.9.0_RC2 release-4.9.0_RC1 release-4.8.0_RC5 release-4.8.0_RC4 release-4.8.0_RC3 release-4.8.0_RC2 release-4.8.0_RC1 release-4.7.0_RC6 release-4.7.0_RC5 release-4.7.0_RC4 release-4.7.0_RC3 release-4.7.0_RC2 release-4.7.0_RC1 release-4.6.0_RC2 release-4.6.0_RC1 release-4.5.0_RC2 release-4.5.0_RC1 release-4.4.0_RC6 release-4.4.0_RC5 release-4.4.0_RC4 release-4.4.0_RC3 release-4.4.0_RC2 release-4.4.0_RC1 release-4.3.0_RC10 release-4.3.0_RC9 release-4.3.0_RC8 release-4.3.0_RC7 release-4.3.0_RC6 release-4.3.0_RC5 release-4.3.0_RC4 release-4.3.0_RC3 release-4.3.0_RC2 release-4.3.0_RC1 release-4.2.0_RC13 release-4.2.0_RC12 release-4.2.0_RC11 release-4.2.0_RC10 release-4.2.0_RC9 release-4.2.0_RC8 release-4.2.0_RC7 release-4.2.0_RC6 release-4.2.0_RC5 release-4.2.0_RC4 release-4.2.0_RC3 release-4.2.0_RC2 release-4.2.0_RC1 release-4.1.0_RC13 release-4.1.0_RC12 release-4.1.0_RC11 release-4.1.0_RC10 release-4.1.0_RC9 release-4.1.0_RC8 release-4.1.0_RC7 release-4.1.0_RC6 release-4.1.0_RC5 release-4.1.0_RC4 release-4.1.0_RC3 release-4.1.0_RC2 release-4.1.0_RC1
No related merge requests found
Showing with 106 additions and 105 deletions
+106 -105
......@@ -6,28 +6,28 @@ object CollectionTOCConstants {
val COLLECTION_EXPORT = "exportCollection"
val COLLECTION = "collection"
val COLLECTION_TOC_ALLOWED_MIMETYPE = "application/vnd.ekstep.content-collection"
val COLLECTION_TOC_ALLOWED_CONTENT_TYPES = "collection_toc_allowed_content_types"
val COLLECTION_TOC_MAX_CSV_ROWS = "collection_toc_max_csv_rows"
val COLLECTION_CREATION_CSV_TOC_HEADERS = "collection_create_csv_toc_headers"
val COLLECTION_CSV_IDENTIFIER_HEADER = "csv_folder_identifier_col_header"
val COLLECTION_UPDATE_CSV_TOC_HEADERS = "collection_update_csv_toc_headers"
val COLLECTION_TOC_CREATE_CSV_MANDATORY_FIELDS = "collection_toc_create_csv_mandatory_fields"
val COLLECTION_TOC_UPDATE_CSV_MANDATORY_FIELDS = "collection_toc_update_csv_mandatory_fields"
val FOLDER_HIERARCHY_COLUMNS = "collection_csv_hierarchy_headers"
val COLLECTION_CSV_QR_COLUMNS = "collection_csv_qr_headers"
val COLLECTION_CSV_LINKED_CONTENT_FIELDS = "collection_csv_linked_content_fields"
val COLLECTION_CSV_LINKED_CONTENT_SEQ = "collection_csv_linked_content_seq"
val COLLECTION_TOC_ALLOWED_CONTENT_TYPES = "collection.csv.allowedContentTypes"
val COLLECTION_TOC_MAX_CSV_ROWS = "collection.csv.maxRows"
val COLLECTION_CREATION_CSV_TOC_HEADERS = "collection.csv.headers.sequence.create"
val COLLECTION_CSV_IDENTIFIER_HEADER = "collection.csv.headers.folderIdentifier"
val COLLECTION_UPDATE_CSV_TOC_HEADERS = "collection.csv.headers.sequence.update"
val COLLECTION_TOC_CREATE_CSV_MANDATORY_FIELDS = "collection.csv.mandatory.create"
val COLLECTION_TOC_UPDATE_CSV_MANDATORY_FIELDS = "collection.csv.mandatory.update"
val FOLDER_HIERARCHY_COLUMNS = "collection.csv.headers.hierarchy"
val COLLECTION_CSV_QR_COLUMNS = "collection.csv.headers.QR"
val COLLECTION_CSV_LINKED_CONTENT_FIELDS = "collection.csv.headers.linkedContents"
val COLLECTION_CSV_LINKED_CONTENT_SEQ = "collection.csv.headers.sequence.linkedContents"
val COMMA_SEPARATOR = ", "
val X_CHANNEL_ID = "X-Channel-Id"
val DIALCODE = "dialcode"
val MAPPED_TOPICS_HEADER = "collection_csv_mapped_topics_header"
val CSV_COLLECTION_NAME_HEADER = "collection_csv_collection_name"
val MAPPED_TOPICS_HEADER = "collection.csv.headers.topics"
val CSV_COLLECTION_NAME_HEADER = "collection.csv.headers.collectionName"
val COLLECTION_CSV_FILE_EXTENSION = ".csv"
val COLLECTION_TYPE_TO_UNIT_TYPE = "collection_content_type_unit_type"
val COLLECTION_TYPE_TO_UNIT_TYPE = "collection.csv.contentTypeToUnitType"
val CHILD_NODES = "childNodes"
val DEPTH = "depth"
val LEVEL = "level"
val COLLECTION_OUTPUT_TOC_HEADERS = "collection_output_toc_headers"
val COLLECTION_OUTPUT_TOC_HEADERS = "collection.csv.headers.output"
val CHILDREN = "children"
val UPDATE = "UPDATE"
val CREATE = "CREATE"
......@@ -38,7 +38,6 @@ object CollectionTOCConstants {
val QR_CODE_REQUIRED = "QR Code Required?"
val QR_CODE = "QR Code"
val KEYWORDS = "keywords"
val MAX_ALLOWED_CONTENT_SIZE = "max_allowed_content_size"
val TOPIC = "topic"
val CONTENT_TYPE = "contentType"
val IDENTIFIER = "identifier"
......@@ -50,9 +49,8 @@ object CollectionTOCConstants {
val CONTENT = "content"
val FRAMEWORK = "framework"
val VERSION_KEY = "versionKey"
val SUNBIRD_TOC_MAX_FIRST_LEVEL_UNITS = "sunbird_toc_max_first_level_units"
val SUNBIRD_TOC_MAX_FIRST_LEVEL_UNITS = "collection.csv.maxFirstLevelUnits"
val INDEX = "index"
val SUNBIRD_CONTENT_GET_HIERARCHY_API = "sunbird_get_hierarchy_api"
val RESULT = "result"
val CONTENT_TYPE_HEADER = "Content-Type"
val BEARER = "Bearer "
......@@ -70,14 +68,13 @@ object CollectionTOCConstants {
val TOC_URL = "tocUrl"
val TTL = "ttl"
val EKSTEP_BASE_URL = "ekstep_api_base_url"
val LEARNING_SERVICE_BASE_URL = "learning_service.api.base_url"
val SUNBIRD_AUTHORIZATION = "learning_service.api.auth_key"
val SUNBIRD_CS_BASE_URL = "sunbird_cs_base_url"
val FRAMEWORK_READ_API_URL = "framework_read_api_url"
val SUNBIRD_DIALCODE_SEARCH_API = "sunbird_dialcode_search_api"
val SUNBIRD_CONTENT_SEARCH_URL = "sunbird_content_search_url"
val SUNBIRD_CONTENT_SEARCH_URL = "composite.search.url"
val UPDATE_HIERARCHY_API = "sunbird_update_hierarchy_api"
val LINK_DIAL_CODE_API = "sunbird_link_dial_code_api"
......
......@@ -23,15 +23,14 @@ object CollectionTOCUtil {
try {
val headers = new util.HashMap[String, String]() {
put(CollectionTOCConstants.CONTENT_TYPE_HEADER, CollectionTOCConstants.APPLICATION_JSON)
put(AUTHORIZATION, CollectionTOCConstants.BEARER + Platform.config.getString(CollectionTOCConstants.SUNBIRD_AUTHORIZATION))
}
val requestUrl = Platform.config.getString(CollectionTOCConstants.LEARNING_SERVICE_BASE_URL) + Platform.config.getString(CollectionTOCConstants.FRAMEWORK_READ_API_URL) + "/" + frameworkId
val requestUrl = Platform.config.getString(CollectionTOCConstants.FRAMEWORK_READ_API_URL) + "/" + frameworkId
TelemetryManager.log("CollectionTOCUtil --> getRelatedFrameworkById --> requestUrl: " + requestUrl)
TelemetryManager.log("CollectionTOCUtil --> getRelatedFrameworkById --> headers: " + headers)
val httpResponse = oec.httpUtil.get(requestUrl,"categories=topic",headers)
TelemetryManager.log("CollectionTOCUtil --> getRelatedFrameworkById --> httpResponse.getResponseCode: " + httpResponse.getResponseCode)
if ( null== httpResponse || httpResponse.getResponseCode.code() != ResponseCode.OK.code())
throw new ServerException("SERVER_ERROR", "Error while fetching content data.")
......@@ -53,8 +52,8 @@ object CollectionTOCUtil {
})
}
val headerParam = HashMap[String, String](CollectionTOCConstants.X_CHANNEL_ID -> channelId, AUTHORIZATION -> (CollectionTOCConstants.BEARER + Platform.config.getString(CollectionTOCConstants.SUNBIRD_AUTHORIZATION)), "Content-Type" -> "application/json")
val requestUrl = Platform.config.getString(CollectionTOCConstants.SUNBIRD_CS_BASE_URL) + Platform.config.getString(CollectionTOCConstants.SUNBIRD_DIALCODE_SEARCH_API)
val headerParam = HashMap[String, String](CollectionTOCConstants.X_CHANNEL_ID -> channelId, "Content-Type" -> "application/json")
val requestUrl = Platform.config.getString(CollectionTOCConstants.SUNBIRD_DIALCODE_SEARCH_API)
val searchResponse = oec.httpUtil.post(requestUrl, reqMap, headerParam)
if (null == searchResponse || searchResponse.getResponseCode.code() != ResponseCode.OK.code())
......@@ -86,8 +85,8 @@ object CollectionTOCUtil {
})
}
val headerParam = HashMap[String, String](AUTHORIZATION -> (BEARER + Platform.config.getString(CollectionTOCConstants.SUNBIRD_AUTHORIZATION)), "Content-Type" -> "application/json")
val requestUrl = Platform.config.getString(CollectionTOCConstants.SUNBIRD_CS_BASE_URL) + Platform.config.getString(CollectionTOCConstants.SUNBIRD_CONTENT_SEARCH_URL)
val headerParam = HashMap[String, String]("Content-Type" -> "application/json")
val requestUrl = Platform.config.getString(CollectionTOCConstants.SUNBIRD_CONTENT_SEARCH_URL)
val searchResponse = oec.httpUtil.post(requestUrl, reqMap, headerParam)
......@@ -110,8 +109,8 @@ object CollectionTOCUtil {
})
}
val headerParam = HashMap[String, String](CollectionTOCConstants.X_CHANNEL_ID -> channelId, AUTHORIZATION -> (BEARER + Platform.config.getString(CollectionTOCConstants.SUNBIRD_AUTHORIZATION)), "Content-Type" -> "application/json")
val requestUrl = Platform.config.getString(CollectionTOCConstants.LEARNING_SERVICE_BASE_URL) + Platform.config.getString(CollectionTOCConstants.LINK_DIAL_CODE_API) + "/" + collectionID
val headerParam = HashMap[String, String](CollectionTOCConstants.X_CHANNEL_ID -> channelId, "Content-Type" -> "application/json")
val requestUrl = Platform.config.getString(CollectionTOCConstants.LINK_DIAL_CODE_API) + "/" + collectionID
val linkResponse = oec.httpUtil.post(requestUrl, reqMap, headerParam)
......
schema.base_path = "../../schemas/"
schema.base_path = "./schemas/"
# Configuration
graph.dir=/data/testingGraphDB
......@@ -82,34 +82,35 @@ mimeTypeToPrimaryCategory {
# Collection CSV Hierarchy API
csv_folder_identifier_col_header = ["Folder Identifier"]
collection_create_csv_toc_headers = {"Level 1 Folder":0,"Level 2 Folder":1,"Level 3 Folder":2,"Level 4 Folder":3,"Description":4}
collection_update_csv_toc_headers = {"Collection Name":0,"Folder Identifier":1,"Level 1 Folder":2,"Level 2 Folder":3,"Level 3 Folder":4,"Level 4 Folder":5,"Description":6,"Mapped Topics":7,"Keywords":8,"QR Code Required?":9,"QR Code":10,"Linked Content 1":11,"Linked Content 2":12,"Linked Content 3":13,"Linked Content 4":14,"Linked Content 5":15,"Linked Content 6":16,"Linked Content 7":17,"Linked Content 8":18,"Linked Content 9":19,"Linked Content 10":20,"Linked Content 11":21,"Linked Content 12":22,"Linked Content 13":23,"Linked Content 14":24,"Linked Content 15":25,"Linked Content 16":26,"Linked Content 17":27,"Linked Content 18":28,"Linked Content 19":29,"Linked Content 20":30,"Linked Content 21":31,"Linked Content 22":32,"Linked Content 23":33,"Linked Content 24":34,"Linked Content 25":35,"Linked Content 26":36,"Linked Content 27":37,"Linked Content 28":38,"Linked Content 29":39,"Linked Content 30":40}
collection_toc_create_csv_mandatory_fields=["Level 1 Folder"]
collection_toc_update_csv_mandatory_fields=["Collection Name","Folder Identifier"]
collection_csv_hierarchy_headers = ["Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder"]
collection_csv_qr_headers = ["QR Code Required?","QR Code"]
collection_csv_linked_content_fields = ["Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
collection_csv_linked_content_seq = {"Linked Content 1":0,"Linked Content 2":1,"Linked Content 3":2,"Linked Content 4":3,"Linked Content 5":4,"Linked Content 6":5,"Linked Content 7":6,"Linked Content 8":7,"Linked Content 9":8,"Linked Content 10":9,"Linked Content 11":10,"Linked Content 12":11,"Linked Content 13":12,"Linked Content 14":13,"Linked Content 15":14,"Linked Content 16":15,"Linked Content 17":16,"Linked Content 18":17,"Linked Content 19":18,"Linked Content 20":19,"Linked Content 21":20,"Linked Content 22":21,"Linked Content 23":22,"Linked Content 24":23,"Linked Content 25":24,"Linked Content 26":25,"Linked Content 27":26,"Linked Content 28":27,"Linked Content 29":28,"Linked Content 30":29}
collection_csv_mapped_topics_header = ["Mapped Topics"]
collection_csv_collection_name = ["Collection Name"]
collection_toc_max_csv_rows=6500
collection_toc_allowed_content_types=["TextBook","Collection","LessonPlan","Resource"]
collection_content_type_unit_type = {"TextBook": "TextBookUnit", "Course": "CourseUnit", "Collection":"CollectionUnit"}
collection_output_toc_headers = ["Collection Name","Folder Identifier","Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder","Description","Mapped Topics","Keywords","QR Code Required?","QR Code","Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
sunbird_collection_toc_csv_ttl=86400
sunbird_toc_max_first_level_units=30
framework_read_api_url=/framework/v1/read
sunbird_dialcode_search_api=/dialcode/v1/list
sunbird_content_search_url=/content/v1/search
sunbird_link_dial_code_api=/collection/v3/dialcode/link
sunbird_cs_base_url="https://dev.sunbirded.org/api"
learning_service {
api {
base_url : ""
auth_key : ""
}
collection {
csv {
maxRows = 6500
allowedContentTypes = ["TextBook","Collection","LessonPlan","Resource"]
maxFirstLevelUnits=30
ttl = 86400
contentTypeToUnitType = {"TextBook": "TextBookUnit", "Course": "CourseUnit", "Collection":"CollectionUnit"}
headers {
folderIdentifier = ["Folder Identifier"]
hierarchy = ["Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder"]
QR = ["QR Code Required?","QR Code"]
topics = ["Mapped Topics"]
collectionName = ["Collection Name"]
linkedContents = ["Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
output = ["Collection Name","Folder Identifier","Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder","Description","Mapped Topics","Keywords","QR Code Required?","QR Code","Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
sequence {
create = {"Level 1 Folder":0,"Level 2 Folder":1,"Level 3 Folder":2,"Level 4 Folder":3,"Description":4}
update = {"Collection Name":0,"Folder Identifier":1,"Level 1 Folder":2,"Level 2 Folder":3,"Level 3 Folder":4,"Level 4 Folder":5,"Description":6,"Mapped Topics":7,"Keywords":8,"QR Code Required?":9,"QR Code":10,"Linked Content 1":11,"Linked Content 2":12,"Linked Content 3":13,"Linked Content 4":14,"Linked Content 5":15,"Linked Content 6":16,"Linked Content 7":17,"Linked Content 8":18,"Linked Content 9":19,"Linked Content 10":20,"Linked Content 11":21,"Linked Content 12":22,"Linked Content 13":23,"Linked Content 14":24,"Linked Content 15":25,"Linked Content 16":26,"Linked Content 17":27,"Linked Content 18":28,"Linked Content 19":29,"Linked Content 20":30,"Linked Content 21":31,"Linked Content 22":32,"Linked Content 23":33,"Linked Content 24":34,"Linked Content 25":35,"Linked Content 26":36,"Linked Content 27":37,"Linked Content 28":38,"Linked Content 29":39,"Linked Content 30":40}
linkedContents = {"Linked Content 1":0,"Linked Content 2":1,"Linked Content 3":2,"Linked Content 4":3,"Linked Content 5":4,"Linked Content 6":5,"Linked Content 7":6,"Linked Content 8":7,"Linked Content 9":8,"Linked Content 10":9,"Linked Content 11":10,"Linked Content 12":11,"Linked Content 13":12,"Linked Content 14":13,"Linked Content 15":14,"Linked Content 16":15,"Linked Content 17":16,"Linked Content 18":17,"Linked Content 19":18,"Linked Content 20":19,"Linked Content 21":20,"Linked Content 22":21,"Linked Content 23":22,"Linked Content 24":23,"Linked Content 25":24,"Linked Content 26":25,"Linked Content 27":26,"Linked Content 28":27,"Linked Content 29":28,"Linked Content 30":29}
}
}
mandatory {
create = ["Level 1 Folder"]
update = ["Collection Name","Folder Identifier"]
}
}
}
composite.search.url="https://dev.sunbirded.org/action/composite/v3/search"
framework_read_api_url="https://dev.sunbirded.org/api/framework/v1/read"
sunbird_dialcode_search_api="https://dev.sunbirded.org/api/dialcode/v1/list"
sunbird_link_dial_code_api="https://dev.sunbirded.org/api/collection/v3/dialcode/link"
......@@ -369,11 +369,11 @@ class TestCollectionCSVActor extends FlatSpec with Matchers with MockFactory {
(graphDB.readExternalProps(_: Request, _: List[String])).expects(*, *).returns(Future(getCassandraHierarchy())).anyNumberOfTimes()
(oec.httpUtil _).expects().returns(httpUtil)
(httpUtil.post(_: String, _:java.util.Map[String, AnyRef], _:java.util.Map[String, String])).expects("https://dev.sunbirded.org/api" + "/dialcode/v1/list", *, *).returns(getDIALSearchResponse()).anyNumberOfTimes()
(httpUtil.post(_: String, _:java.util.Map[String, AnyRef], _:java.util.Map[String, String])).expects("https://dev.sunbirded.org/api/dialcode/v1/list", *, *).returns(getDIALSearchResponse()).anyNumberOfTimes()
(oec.httpUtil _).expects().returns(httpUtil)
(httpUtil.post(_: String, _:java.util.Map[String, AnyRef], _:java.util.Map[String, String])).expects("https://dev.sunbirded.org/api" + "/content/v1/search", *, *).returns(searchLinkedContentsResponse()).anyNumberOfTimes()
(httpUtil.post(_: String, _:java.util.Map[String, AnyRef], _:java.util.Map[String, String])).expects("https://dev.sunbirded.org/action/composite/v3/search", *, *).returns(searchLinkedContentsResponse()).anyNumberOfTimes()
(oec.httpUtil _).expects().returns(httpUtil)
(httpUtil.post(_: String, _:java.util.Map[String, AnyRef], _:java.util.Map[String, String])).expects("" + "/collection/v3/dialcode/link" + "/" + collectionID, *, *).returns(linkDIALCodesResponse()).anyNumberOfTimes()
(httpUtil.post(_: String, _:java.util.Map[String, AnyRef], _:java.util.Map[String, String])).expects("https://dev.sunbirded.org/api/collection/v3/dialcode/link" + "/" + collectionID, *, *).returns(linkDIALCodesResponse()).anyNumberOfTimes()
val response = uploadFileToActor(collectionID, resourceDirectory + "UpdateTOC.csv")
assert(response != null)
......@@ -390,7 +390,6 @@ class TestCollectionCSVActor extends FlatSpec with Matchers with MockFactory {
(graphDB.readExternalProps(_: Request, _: List[String])).expects(*, *).returns(Future(getEmptyCassandraHierarchy())).anyNumberOfTimes()
(graphDB.updateExternalProps(_:Request)).expects(*).returns(Future(getCassandraHierarchy())).anyNumberOfTimes()
val collectionID = "do_113293355858984960134"
val response = uploadFileToActor(collectionID, resourceDirectory + "CreateTOC.csv")
assert(response != null)
......
......@@ -373,18 +373,18 @@ languageCode {
platform.language.codes=["as","bn","en","gu","hi","hoc","jun","ka","mai","mr","unx","or","san","sat","ta","te","urd"]
collection.keyspace = "hierarchy_store"
content.keyspace = "content_store"
collection.keyspace = "dev_hierarchy_store"
content.keyspace = "dev_content_store"
# Learning-Service Configuration
content.metadata.visibility.parent=["textbookunit", "courseunit", "lessonplanunit", "event"]
# Cassandra Configuration
//content.keyspace.name=content_store
//content.keyspace.name=dev_content_store
//content.keyspace.table=content_data
#TODO: Add Configuration for assessment. e.g: question_data
orchestrator.keyspace.name=script_store
orchestrator.keyspace.table=script_data
orchestrator.keyspace.name=dev_question_store
orchestrator.keyspace.table=question_data
cassandra.lp.connection="127.0.0.1:9042"
cassandra.lpa.connection="127.0.0.1:9042"
......@@ -471,16 +471,16 @@ MAX_ITERATION_COUNT_FOR_SAMZA_JOB=2
# DIAL Code Configuration
dialcode.keyspace.name="dialcode_store"
dialcode.keyspace.name="sunbirddev_dialcode_store"
dialcode.keyspace.table="dial_code"
dialcode.max_count=1000
# System Configuration
system.config.keyspace.name="dialcode_store"
system.config.keyspace.name="sunbirddev_dialcode_store"
system.config.table="system_config"
#Publisher Configuration
publisher.keyspace.name="dialcode_store"
publisher.keyspace.name="sunbirddev_dialcode_store"
publisher.keyspace.table="publisher"
#DIAL Code Generator Configuration
......@@ -545,10 +545,15 @@ learning.service_provider=["youtube"]
stream.mime.type=video/mp4
compositesearch.index.name="compositesearch"
hierarchy.keyspace.name=hierarchy_store
hierarchy.keyspace.name=dev_hierarchy_store
content.hierarchy.table=content_hierarchy
framework.hierarchy.table=framework_hierarchy
objectcategorydefinition.keyspace=category_store
objectcategorydefinition.keyspace=dev_category_store
cloud_storage_type: "azure"
azure_storage_key: "sunbirddev"
azure_storage_secret: "XcRoJsGkl8Gq5LpMm9Hnm0AEd3GpCHi7ck1qcdovIcN2VMWIvKiYtOEHHALeIq/5GJ9wrs6DUPszF9mV6tB9Qg=="
azure_storage_container: "sunbird-content-dev"
# Kafka topic for definition update event.
kafka.topic.system.command="dev.system.command"
......@@ -703,35 +708,35 @@ objecttype.as.content.enabled=true
# master Category Cache Properties
master.category.cache.ttl=86400
# Collection CSV Hierarchy API
csv_folder_identifier_col_header = ["Folder Identifier"]
collection_create_csv_toc_headers = {"Level 1 Folder":0,"Level 2 Folder":1,"Level 3 Folder":2,"Level 4 Folder":3,"Description":4}
collection_update_csv_toc_headers = {"Collection Name":0,"Folder Identifier":1,"Level 1 Folder":2,"Level 2 Folder":3,"Level 3 Folder":4,"Level 4 Folder":5,"Description":6,"Mapped Topics":7,"Keywords":8,"QR Code Required?":9,"QR Code":10,"Linked Content 1":11,"Linked Content 2":12,"Linked Content 3":13,"Linked Content 4":14,"Linked Content 5":15,"Linked Content 6":16,"Linked Content 7":17,"Linked Content 8":18,"Linked Content 9":19,"Linked Content 10":20,"Linked Content 11":21,"Linked Content 12":22,"Linked Content 13":23,"Linked Content 14":24,"Linked Content 15":25,"Linked Content 16":26,"Linked Content 17":27,"Linked Content 18":28,"Linked Content 19":29,"Linked Content 20":30,"Linked Content 21":31,"Linked Content 22":32,"Linked Content 23":33,"Linked Content 24":34,"Linked Content 25":35,"Linked Content 26":36,"Linked Content 27":37,"Linked Content 28":38,"Linked Content 29":39,"Linked Content 30":40}
collection_toc_create_csv_mandatory_fields=["Level 1 Folder"]
collection_toc_update_csv_mandatory_fields=["Collection Name","Folder Identifier"]
collection_csv_hierarchy_headers = ["Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder"]
collection_csv_qr_headers = ["QR Code Required?","QR Code"]
collection_csv_linked_content_fields = ["Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
collection_csv_linked_content_seq = {"Linked Content 1":0,"Linked Content 2":1,"Linked Content 3":2,"Linked Content 4":3,"Linked Content 5":4,"Linked Content 6":5,"Linked Content 7":6,"Linked Content 8":7,"Linked Content 9":8,"Linked Content 10":9,"Linked Content 11":10,"Linked Content 12":11,"Linked Content 13":12,"Linked Content 14":13,"Linked Content 15":14,"Linked Content 16":15,"Linked Content 17":16,"Linked Content 18":17,"Linked Content 19":18,"Linked Content 20":19,"Linked Content 21":20,"Linked Content 22":21,"Linked Content 23":22,"Linked Content 24":23,"Linked Content 25":24,"Linked Content 26":25,"Linked Content 27":26,"Linked Content 28":27,"Linked Content 29":28,"Linked Content 30":29}
collection_csv_mapped_topics_header = ["Mapped Topics"]
collection_csv_collection_name = ["Collection Name"]
collection_toc_max_csv_rows=6500
collection_toc_allowed_content_types=["TextBook","Collection","LessonPlan","Resource"]
collection_content_type_unit_type = {"TextBook": "TextBookUnit", "Course": "CourseUnit", "Collection":"CollectionUnit"}
collection_output_toc_headers = ["Collection Name","Folder Identifier","Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder","Description","Mapped Topics","Keywords","QR Code Required?","QR Code","Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
sunbird_collection_toc_csv_ttl=86400
sunbird_toc_max_first_level_units=30
framework_read_api_url=/framework/v1/read
sunbird_dialcode_search_api=/dialcode/v1/list
sunbird_content_search_url=/content/v1/search
sunbird_link_dial_code_api=/collection/v3/dialcode/link
sunbird_cs_base_url="https://dev.sunbirded.org/api"
learning_service {
api {
base_url : ""
auth_key : ""
}
# Collection CSV
sunbird_dialcode_search_api="http://dial-service.{{namespace}}.svc.cluster.local:9000/dialcode/v3/list"
framework_read_api_url="{{ sunbird_content_repo_api_base_url }}/framework/v3/read"
sunbird_link_dial_code_api="{{ sunbird_content_repo_api_base_url }}/collection/v3/dialcode/link"
collection {
csv {
maxRows = 6500
allowedContentTypes = ["TextBook","Collection","LessonPlan","Resource"]
maxFirstLevelUnits=30
ttl = 86400
contentTypeToUnitType = {"TextBook": "TextBookUnit", "Course": "CourseUnit", "Collection":"CollectionUnit"}
headers {
folderIdentifier = ["Folder Identifier"]
hierarchy = ["Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder"]
QR = ["QR Code Required?","QR Code"]
topics = ["Mapped Topics"]
collectionName = ["Collection Name"]
linkedContents = ["Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
output = ["Collection Name","Folder Identifier","Level 1 Folder","Level 2 Folder","Level 3 Folder","Level 4 Folder","Description","Mapped Topics","Keywords","QR Code Required?","QR Code","Linked Content 1","Linked Content 2","Linked Content 3","Linked Content 4","Linked Content 5","Linked Content 6","Linked Content 7","Linked Content 8","Linked Content 9","Linked Content 10","Linked Content 11","Linked Content 12","Linked Content 13","Linked Content 14","Linked Content 15","Linked Content 16","Linked Content 17","Linked Content 18","Linked Content 19","Linked Content 20","Linked Content 21","Linked Content 22","Linked Content 23","Linked Content 24","Linked Content 25","Linked Content 26","Linked Content 27","Linked Content 28","Linked Content 29","Linked Content 30"]
sequence {
create = {"Level 1 Folder":0,"Level 2 Folder":1,"Level 3 Folder":2,"Level 4 Folder":3,"Description":4}
update = {"Collection Name":0,"Folder Identifier":1,"Level 1 Folder":2,"Level 2 Folder":3,"Level 3 Folder":4,"Level 4 Folder":5,"Description":6,"Mapped Topics":7,"Keywords":8,"QR Code Required?":9,"QR Code":10,"Linked Content 1":11,"Linked Content 2":12,"Linked Content 3":13,"Linked Content 4":14,"Linked Content 5":15,"Linked Content 6":16,"Linked Content 7":17,"Linked Content 8":18,"Linked Content 9":19,"Linked Content 10":20,"Linked Content 11":21,"Linked Content 12":22,"Linked Content 13":23,"Linked Content 14":24,"Linked Content 15":25,"Linked Content 16":26,"Linked Content 17":27,"Linked Content 18":28,"Linked Content 19":29,"Linked Content 20":30,"Linked Content 21":31,"Linked Content 22":32,"Linked Content 23":33,"Linked Content 24":34,"Linked Content 25":35,"Linked Content 26":36,"Linked Content 27":37,"Linked Content 28":38,"Linked Content 29":39,"Linked Content 30":40}
linkedContents = {"Linked Content 1":0,"Linked Content 2":1,"Linked Content 3":2,"Linked Content 4":3,"Linked Content 5":4,"Linked Content 6":5,"Linked Content 7":6,"Linked Content 8":7,"Linked Content 9":8,"Linked Content 10":9,"Linked Content 11":10,"Linked Content 12":11,"Linked Content 13":12,"Linked Content 14":13,"Linked Content 15":14,"Linked Content 16":15,"Linked Content 17":16,"Linked Content 18":17,"Linked Content 19":18,"Linked Content 20":19,"Linked Content 21":20,"Linked Content 22":21,"Linked Content 23":22,"Linked Content 24":23,"Linked Content 25":24,"Linked Content 26":25,"Linked Content 27":26,"Linked Content 28":27,"Linked Content 29":28,"Linked Content 30":29}
}
}
mandatory {
create = ["Level 1 Folder"]
update = ["Collection Name","Folder Identifier"]
}
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment