mirror of
https://github.com/kevin-DL/services.git
synced 2026-01-11 19:04:35 +00:00
159 lines
3.5 KiB
Protocol Buffer
159 lines
3.5 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package sunnah;
|
|
|
|
option go_package = "./proto;sunnah";
|
|
|
|
service Sunnah {
|
|
rpc Collections(CollectionsRequest) returns (CollectionsResponse) {}
|
|
rpc Books(BooksRequest) returns (BooksResponse) {}
|
|
rpc Chapters(ChaptersRequest) returns (ChaptersResponse) {}
|
|
rpc Hadiths(HadithsRequest) returns (HadithsResponse) {}
|
|
}
|
|
|
|
message Collection {
|
|
// Name of the collection e.g bukhari
|
|
string name = 1;
|
|
// Title of the collection e.g Sahih al-Bukhari
|
|
string title = 2;
|
|
// Arabic title if available
|
|
string arabic_title = 3;
|
|
// An introduction explaining the collection
|
|
string summary = 4;
|
|
// Total hadiths in the collection
|
|
int32 hadiths = 5;
|
|
}
|
|
|
|
message Book {
|
|
// number of the book e.g 1
|
|
int32 id = 1;
|
|
// name of the book
|
|
string name = 2;
|
|
// arabic name of the book
|
|
string arabic_name = 3;
|
|
// number of hadiths in the book
|
|
int32 hadiths = 4;
|
|
}
|
|
|
|
message Chapter {
|
|
// the chapter id e.g 1
|
|
int32 id = 1;
|
|
// the chapter key e.g 1.00
|
|
string key = 2;
|
|
// the book number
|
|
int32 book = 3;
|
|
// title of the chapter
|
|
string title = 4;
|
|
// arabic title
|
|
string arabic_title = 5;
|
|
}
|
|
|
|
message Hadith {
|
|
// hadith id
|
|
int32 id = 1;
|
|
// the chapter id
|
|
int32 chapter = 2;
|
|
// the chapter key
|
|
string chapter_key = 3;
|
|
// the chapter title
|
|
string chapter_title = 4;
|
|
// the arabic chapter title
|
|
string arabic_chapter_title = 5;
|
|
// hadith text
|
|
string text = 6;
|
|
// the arabic text
|
|
string arabic_text = 7;
|
|
}
|
|
|
|
// Get a list of available collections. A collection is
|
|
// a compilation of hadiths collected and written by an author.
|
|
message CollectionsRequest {
|
|
// The page in the pagination
|
|
int32 page = 1;
|
|
// Number of collections to limit to
|
|
int32 limit = 2;
|
|
}
|
|
|
|
message CollectionsResponse {
|
|
repeated Collection collections = 1;
|
|
}
|
|
|
|
// Get a list of books from within a collection. A book can contain many chapters
|
|
// each with its own hadiths.
|
|
message BooksRequest {
|
|
// Name of the collection
|
|
string collection = 1;
|
|
// The page in the pagination
|
|
int32 page = 2;
|
|
// Limit the number of books returned
|
|
int32 limit = 3;
|
|
}
|
|
|
|
message BooksResponse {
|
|
// Name of the collection
|
|
string collection = 1;
|
|
// The total overall books
|
|
int32 total = 2;
|
|
// The page requested
|
|
int32 page = 3;
|
|
// The limit specified
|
|
int32 limit = 4;
|
|
// A list of books
|
|
repeated Book books = 5;
|
|
}
|
|
|
|
// Get all the chapters of a given book within a collection.
|
|
message ChaptersRequest {
|
|
// name of the collection
|
|
string collection = 1;
|
|
// number of the book
|
|
int32 book = 2;
|
|
// The page in the pagination
|
|
int32 page = 3;
|
|
// Limit the number of chapters returned
|
|
int32 limit = 4;
|
|
}
|
|
|
|
message ChaptersResponse {
|
|
// name of the collection
|
|
string collection = 1;
|
|
// number of the book
|
|
int32 book = 2;
|
|
// The page in the pagination
|
|
int32 page = 3;
|
|
// Limit the number of chapters returned
|
|
int32 limit = 4;
|
|
// Total chapters in the book
|
|
int32 total = 5;
|
|
// The chapters of the book
|
|
repeated Chapter chapters = 6;
|
|
}
|
|
|
|
// Hadiths returns a list of hadiths and their corresponding text for a
|
|
// given book within a collection.
|
|
message HadithsRequest {
|
|
// name of the collection
|
|
string collection = 1;
|
|
// number of the book
|
|
int32 book = 2;
|
|
// The page in the pagination
|
|
int32 page = 3;
|
|
// Limit the number of hadiths
|
|
int32 limit = 4;
|
|
}
|
|
|
|
message HadithsResponse {
|
|
// name of the collection
|
|
string collection = 1;
|
|
// number of the book
|
|
int32 book = 2;
|
|
// The page in the pagination
|
|
int32 page = 3;
|
|
// Limit the number of hadiths returned
|
|
int32 limit = 4;
|
|
// Total hadiths in the book
|
|
int32 total = 5;
|
|
// The hadiths of the book
|
|
repeated Hadith hadiths = 7;
|
|
}
|