@ -80,6 +80,7 @@ hadis_category_tree_swagger = swagger_auto_schema(
" order " : 1 ,
" xmind_file " : " http://example.com/media/xmind/tafsir.xmind " ,
" has_xmind_file " : True ,
" children_count " : 2 ,
" children " : [
{
" id " : 2 ,
@ -89,6 +90,7 @@ hadis_category_tree_swagger = swagger_auto_schema(
" order " : 1 ,
" xmind_file " : None ,
" has_xmind_file " : False ,
" children_count " : 0 ,
" children " : [ ]
} ,
{
@ -99,6 +101,7 @@ hadis_category_tree_swagger = swagger_auto_schema(
" order " : 2 ,
" xmind_file " : " http://example.com/media/xmind/baqarah.xmind " ,
" has_xmind_file " : True ,
" children_count " : 0 ,
" children " : [ ]
}
]
@ -113,6 +116,7 @@ hadis_category_tree_swagger = swagger_auto_schema(
" order " : 1 ,
" xmind_file " : " http://example.com/media/xmind/bukhari.xmind " ,
" has_xmind_file " : True ,
" children_count " : 2 ,
" children " : [
{
" id " : 5 ,
@ -122,6 +126,7 @@ hadis_category_tree_swagger = swagger_auto_schema(
" order " : 1 ,
" xmind_file " : None ,
" has_xmind_file " : False ,
" children_count " : 0 ,
" children " : [ ]
} ,
{
@ -132,6 +137,7 @@ hadis_category_tree_swagger = swagger_auto_schema(
" order " : 2 ,
" xmind_file " : " http://example.com/media/xmind/prayer.xmind " ,
" has_xmind_file " : True ,
" children_count " : 0 ,
" children " : [ ]
}
]
@ -339,3 +345,525 @@ hadis_detail_swagger = swagger_auto_schema(
404 : openapi . Response ( description = " Hadis not found " )
}
)
# Swagger documentation for TransmitterView
transmitter_list_swagger = swagger_auto_schema (
operation_description = " Get list of transmitters (narrators) with optional filtering by status, madhhab, and generation " ,
operation_summary = " List Transmitters " ,
tags = [ ' Hadis ' ] ,
manual_parameters = [
openapi . Parameter (
' status ' ,
openapi . IN_QUERY ,
description = ' Filter by reliability status (very_reliable, reliable, acceptable, weak, very_weak, unknown) ' ,
type = openapi . TYPE_STRING ,
required = False
) ,
openapi . Parameter (
' madhhab ' ,
openapi . IN_QUERY ,
description = ' Filter by madhhab/school (shia, sunni, hanafi, maliki, shafii, hanbali, other, unknown) ' ,
type = openapi . TYPE_STRING ,
required = False
) ,
openapi . Parameter (
' generation ' ,
openapi . IN_QUERY ,
description = ' Filter by generation (1-10 representing narrator layers/classes) ' ,
type = openapi . TYPE_INTEGER ,
required = False
) ,
] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " List of transmitters with optional filtering applied " ,
examples = {
" application/json " : [
{
" id " : 1 ,
" full_name " : " Abu Daud Sulaiman ibn al-Ash ' ath al-Azdi al-Sijistani " ,
" birth_year_hijri " : 202 ,
" death_year_hijri " : 275 ,
" description " : " Imam Abu Daud, compiler of Sunan Abu Daud, one of the six major hadith collections "
} ,
{
" id " : 2 ,
" full_name " : " Muhammad ibn Isma ' il al-Bukhari " ,
" birth_year_hijri " : 194 ,
" death_year_hijri " : 256 ,
" description " : " Imam Bukhari, compiler of Sahih al-Bukhari, the most authentic hadith collection "
}
]
}
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for TransmitterDetailView
transmitter_detail_swagger = swagger_auto_schema (
operation_description = " Get detailed information about a specific transmitter including their scholarly opinions and hadith transmissions " ,
operation_summary = " Get Transmitter Details " ,
tags = [ ' Hadis ' ] ,
manual_parameters = [
openapi . Parameter (
' transmitters_id ' ,
openapi . IN_PATH ,
description = " ID of the transmitter " ,
type = openapi . TYPE_INTEGER ,
required = True
)
] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " Detailed transmitter information with nested opinions and transmissions " ,
examples = {
" application/json " : {
" id " : 1 ,
" full_name " : " Abu Daud Sulaiman ibn al-Ash ' ath al-Azdi al-Sijistani " ,
" kunya " : " Abu Daud " ,
" known_as " : " Imam Abu Daud " ,
" nickname " : " Al-Sijistani " ,
" origin " : " Sijistan (modern Sistan) " ,
" lived_in " : " Basra, Baghdad " ,
" died_in " : " Basra " ,
" birth_year_hijri " : 202 ,
" death_year_hijri " : 275 ,
" age_at_death " : 73 ,
" reliability " : " very_reliable " ,
" madhhab " : " sunni " ,
" in_sahih_bukhari " : False ,
" in_sahih_muslim " : True ,
" description " : " Imam Abu Daud, compiler of Sunan Abu Daud " ,
" thumbnail " : " http://example.com/media/transmitters/abu_daud.jpg " ,
" opinions " : [
{
" id " : 1 ,
" scholar_name " : " Ibn Hajar al-Asqalani " ,
" opinion_text " : " Abu Daud was a reliable and trustworthy narrator " ,
" status " : " confirmed " ,
" created_at " : " 2024-01-01T00:00:00Z " ,
" updated_at " : " 2024-01-01T00:00:00Z "
}
] ,
" hadis_transmissions " : [
{
" id " : 1 ,
" hadis " : {
" id " : 1001 ,
" number " : 1 ,
" title " : " The first hadith " ,
" category " : {
" id " : 1 ,
" title " : " Book of Faith "
} ,
" translation " : " Actions are by intentions "
} ,
" order " : 1 ,
" status " : " reliable " ,
" narrator_layer " : 1 ,
" created_at " : " 2024-01-01T00:00:00Z "
}
]
}
}
) ,
status . HTTP_404_NOT_FOUND : openapi . Response (
description = " Transmitter not found "
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for BookReferencesView
book_references_list_swagger = swagger_auto_schema (
operation_description = " Get list of all book references used in hadith studies including their metadata, images, and volume counts " ,
operation_summary = " List Book References " ,
tags = [ ' Hadis ' ] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " List of all book references " ,
examples = {
" application/json " : [
{
" id " : 1 ,
" title " : " Sahih al-Bukhari " ,
" description " : " The most authentic collection of hadith compiled by Imam Bukhari " ,
" rate " : 5.0 ,
" image " : [
{
" id " : 1 ,
" image " : " http://example.com/media/books/bukhari_cover.jpg " ,
" order " : 1 ,
" description " : " Front cover of Sahih al-Bukhari " ,
" created_at " : " 2024-01-01T00:00:00Z "
}
] ,
" volume_count " : 9
} ,
{
" id " : 2 ,
" title " : " Sahih Muslim " ,
" description " : " The second most authentic collection of hadith compiled by Imam Muslim " ,
" rate " : 4.9 ,
" image " : [ ] ,
" volume_count " : 7
}
]
}
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for BookAuthorView
book_authors_list_swagger = swagger_auto_schema (
operation_description = " Get list of all book authors who have contributed to hadith literature " ,
operation_summary = " List Book Authors " ,
tags = [ ' Hadis ' ] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " List of all book authors " ,
examples = {
" application/json " : [
{
" id " : 1 ,
" name " : " Muhammad ibn Isma ' il al-Bukhari " ,
" created_at " : " 2024-01-01T00:00:00Z " ,
" updated_at " : " 2024-01-01T00:00:00Z "
} ,
{
" id " : 2 ,
" name " : " Muslim ibn al-Hajjaj al-Qushayri " ,
" created_at " : " 2024-01-01T00:00:00Z " ,
" updated_at " : " 2024-01-01T00:00:00Z "
}
]
}
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for BookDetailView
book_detail_swagger = swagger_auto_schema (
operation_description = " Get detailed information about a specific book reference including authors, images, and related hadiths " ,
operation_summary = " Get Book Reference Details " ,
tags = [ ' Hadis ' ] ,
manual_parameters = [
openapi . Parameter (
' bookreference_id ' ,
openapi . IN_PATH ,
description = " ID of the book reference " ,
type = openapi . TYPE_INTEGER ,
required = True
)
] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " Detailed book reference information " ,
examples = {
" application/json " : {
" id " : 1 ,
" title " : " Sahih al-Bukhari " ,
" description " : " The most authentic collection of hadith compiled by Imam Bukhari " ,
" language " : " Arabic " ,
" isbn " : " 978-1234567890 " ,
" volume " : " 9 volumes " ,
" year_of_publication " : " 846 " ,
" number_page " : 4200 ,
" rate " : 5.0 ,
" created_at " : " 2024-01-01T00:00:00Z " ,
" updated_at " : " 2024-01-01T00:00:00Z " ,
" author " : [
{
" id " : 1 ,
" name " : " Muhammad ibn Isma ' il al-Bukhari " ,
" created_at " : " 2024-01-01T00:00:00Z " ,
" updated_at " : " 2024-01-01T00:00:00Z "
}
] ,
" image " : [
{
" id " : 1 ,
" image " : " http://example.com/media/books/bukhari_cover.jpg " ,
" order " : 1 ,
" description " : " Front cover of Sahih al-Bukhari " ,
" created_at " : " 2024-01-01T00:00:00Z "
}
] ,
" hadis " : [
{
" id " : 1 ,
" number " : 1 ,
" title " : " The first hadith about faith " ,
" category " : {
" id " : 1 ,
" title " : " Book of Faith "
} ,
" translation " : " Actions are by intentions "
}
]
}
}
) ,
status . HTTP_404_NOT_FOUND : openapi . Response (
description = " Book reference not found "
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for CategoriesView
categories_list_swagger = swagger_auto_schema (
operation_description = " Get list of all hadith categories with their associated sect information " ,
operation_summary = " List All Categories " ,
tags = [ ' Hadis ' ] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " List of all hadith categories " ,
examples = {
" application/json " : [
{
" id " : 1 ,
" title " : " Book of Faith " ,
" sect_id " : 1 ,
" sect_type " : " sunni " ,
" source_type " : " hadith " ,
" description " : " Hadiths related to Islamic faith and beliefs " ,
" order " : 1 ,
" slug " : " book-of-faith " ,
" xmind_file " : " http://example.com/media/xmind/faith.xmind " ,
" children_count " : 3
} ,
{
" id " : 2 ,
" title " : " Book of Prayer " ,
" sect_id " : 1 ,
" sect_type " : " sunni " ,
" source_type " : " hadith " ,
" description " : " Hadiths about salah (prayer) and related rulings " ,
" order " : 2 ,
" slug " : " book-of-prayer " ,
" xmind_file " : None ,
" children_count " : 0
}
]
}
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for CategoriesBySectView
categories_by_sect_swagger = swagger_auto_schema (
operation_description = " Get list of hadith categories filtered by sect type (shia or sunni) " ,
operation_summary = " List Categories by Sect " ,
tags = [ ' Hadis ' ] ,
manual_parameters = [
openapi . Parameter (
' sect_type ' ,
openapi . IN_PATH ,
description = " Type of Islamic sect (shia or sunni) " ,
type = openapi . TYPE_STRING ,
enum = [ ' shia ' , ' sunni ' ] ,
required = True
)
] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " List of hadith categories filtered by sect type " ,
examples = {
" application/json " : [
{
" id " : 1 ,
" title " : " Book of Faith " ,
" sect_id " : 1 ,
" sect_type " : " sunni " ,
" source_type " : " hadith " ,
" description " : " Hadiths related to Islamic faith and beliefs " ,
" order " : 1 ,
" slug " : " book-of-faith " ,
" xmind_file " : " http://example.com/media/xmind/faith.xmind " ,
" children_count " : 3
} ,
{
" id " : 2 ,
" title " : " Book of Prayer " ,
" sect_id " : 1 ,
" sect_type " : " sunni " ,
" source_type " : " hadith " ,
" description " : " Hadiths about salah (prayer) and related rulings " ,
" order " : 2 ,
" slug " : " book-of-prayer " ,
" xmind_file " : None ,
" children_count " : 0
}
]
}
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for HadisCategoryTreeBySectView
categories_tree_by_sect_swagger = swagger_auto_schema (
operation_description = " Retrieve child categories of a specific parent category (identified by slug) within a given Islamic sect type " ,
operation_summary = " Get Category Children by Sect and Slug " ,
operation_id = " getCategoryChildrenBySectAndSlug " ,
tags = [ ' Hadis ' ] ,
manual_parameters = [
openapi . Parameter (
' sect_type ' ,
openapi . IN_PATH ,
description = " Type of Islamic sect (shia or sunni) " ,
type = openapi . TYPE_STRING ,
enum = [ ' shia ' , ' sunni ' ] ,
required = True
) ,
openapi . Parameter (
' slug ' ,
openapi . IN_PATH ,
description = " URL slug of the parent category " ,
type = openapi . TYPE_STRING ,
required = True
)
] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " List of child categories belonging to the specified parent category (identified by slug) within the given sect type " ,
examples = {
" application/json " : [
{
" id " : 330 ,
" title " : " Толкование суры Аль-Фатиха " ,
" source_type " : " quran " ,
" slug " : " -1 " ,
" sect_id " : 20 ,
" sect_type " : " shia " ,
" children_count " : 0
} ,
{
" id " : 331 ,
" title " : " Толкование суры Аль-Бакара " ,
" source_type " : " quran " ,
" slug " : " -19 " ,
" sect_id " : 20 ,
" sect_type " : " shia " ,
" children_count " : 0
} ,
{
" id " : 332 ,
" title " : " Толкование суры Аль Имран " ,
" source_type " : " quran " ,
" slug " : " -33 " ,
" sect_id " : 20 ,
" sect_type " : " shia " ,
" children_count " : 0
}
]
}
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)
# Swagger documentation for HadisCategoryTreeBySectSourceView
categories_tree_by_sect_source_swagger = swagger_auto_schema (
operation_description = " Retrieve child categories of a specific parent category (identified by slug) within a given Islamic sect type, additionally filtered by source material type " ,
operation_summary = " Get Category Children by Sect, Slug and Source " ,
operation_id = " getCategoryChildrenBySectSlugAndSource " ,
tags = [ ' Hadis ' ] ,
manual_parameters = [
openapi . Parameter (
' sect_type ' ,
openapi . IN_PATH ,
description = " Type of Islamic sect (shia or sunni) " ,
type = openapi . TYPE_STRING ,
enum = [ ' shia ' , ' sunni ' ] ,
required = True
) ,
openapi . Parameter (
' slug ' ,
openapi . IN_PATH ,
description = " URL slug of the parent category " ,
type = openapi . TYPE_STRING ,
required = True
) ,
openapi . Parameter (
' source_type ' ,
openapi . IN_PATH ,
description = " Type of source material (quran, hadith, history, fatwa, quote) " ,
type = openapi . TYPE_STRING ,
enum = [ ' quran ' , ' hadith ' , ' history ' , ' fatwa ' , ' quote ' ] ,
required = True
)
] ,
responses = {
status . HTTP_200_OK : openapi . Response (
description = " List of child categories belonging to the specified parent category (identified by slug) within the given sect type, additionally filtered by source type " ,
examples = {
" application/json " : [
{
" id " : 330 ,
" title " : " Толкование суры Аль-Фатиха " ,
" source_type " : " quran " ,
" slug " : " -1 " ,
" sect_id " : 20 ,
" sect_type " : " shia " ,
" children_count " : 0 ,
" has_hadis " : False
} ,
{
" id " : 331 ,
" title " : " Толкование суры Аль-Бакара " ,
" source_type " : " quran " ,
" slug " : " -19 " ,
" sect_id " : 20 ,
" sect_type " : " shia " ,
" children_count " : 0 ,
" has_hadis " : False
} ,
{
" id " : 332 ,
" title " : " Толкование суры Аль Имран " ,
" source_type " : " quran " ,
" slug " : " -33 " ,
" sect_id " : 20 ,
" sect_type " : " shia " ,
" children_count " : 0 ,
" has_hadis " : False
}
]
}
) ,
status . HTTP_500_INTERNAL_SERVER_ERROR : openapi . Response (
description = " Internal server error "
)
}
)