@anzuev/knowbase v0.0.9
KnowBase
BZ
<a name="module_BZ..BZ"></a>
BZ~BZ
Класс, представляющий собой прослойку между моделью Document и приложениями, использующими API модели
Kind: inner class of BZ
- ~BZ
- .configure(config) ⇒ void
- .getModel() ⇒ Mongoose.Model
BZ.configure(config) ⇒ void
Настройка модуля
Kind: static method of BZ
Param | Type | Description |
---|---|---|
config | nconf | конфигурация |
BZ.getModel() ⇒ Mongoose.Model
Получение модели документов
Kind: static method of BZ
BZ~Document
Класс, представляющий сущность document
Kind: inner class of BZ
Properties
Name | Type | Description |
---|---|---|
title | String | Название |
description | String | Описание |
author | Mongoose.Types.ObjectId | Автор |
created | Date | Дата создания |
social | object | Объект соц информации |
social.downloads | Array.<Mongoose.Types.ObjectId> | кто скачал |
social.watches | Number | количество просмотров |
social.likes | Array.<Mongoose.Types.ObjectId> | кому понравилось |
social.dislikes | Array.<Mongoose.Types.ObjectId> | кому не понравилось |
social.comments | Array.<Comment> | массив комментариев |
socila.rating | Number | рейтинг |
parts | Array.<Part> | массив частей |
enabled | boolean | доступен ли для поиска |
toDelete | boolean | нужно ли удалять документ |
updated | Date | дата обновления |
search | object | объект с данными для поиска |
search.universities | Array.<Mongoose.Types.ObjectId> | массив id универов, которым подходит данная работа |
search.faculties | Array.<Mongoose.Types.ObjectId> | массив id факультетов, которым подходит данная работа |
search.year | Array.<number> | массив курсов, которым подходит данная работа |
search.subject | Mongoose.Types.ObjectId | id предмета работы(Subject) |
search.cType | Mongoose.Types.ObjectId | id типа работы(WorkType) |
- ~Document
- instance
- .addPart(newPart) ⇒ void
- .isAllowToUpdate(userId) ⇒ boolean
- .removePart(partId) ⇒ boolean
- .saveDoc() ⇒ Document
- static
- .formatToSearch(UAMS, WT, userId) ⇒ Object
- .getDocumentsBy(title, context, page) ⇒ Promise | Promise.<T>
- .addLike(documentId, userId) ⇒ Boolean
- .addDislike(documentId, userId) ⇒ Boolean
- .addWatch(documentId) ⇒ Boolean
- .addDownload(documentId, userId) ⇒ Boolean
- .addComment(documentId, comment) ⇒ Boolean
- .getComments(documentId, date) ⇒ Promise
- instance
document.addPart(newPart) ⇒ void
Kind: instance method of Document
Throws:
- ValidationError, code = 204 - часть с таким урлом уже есть
this: Document
Param | Description |
---|---|
newPart | новая часть |
Properties
Name | Description |
---|---|
url | строка, по которой можно скачать часть |
document.isAllowToUpdate(userId) ⇒ boolean
Kind: instance method of Document
Param | Type | Description |
---|---|---|
userId | Mongoose.Types.ObjectId | id пользователя, который хочет менять что-либо |
document.removePart(partId) ⇒ boolean
Kind: instance method of Document
Returns: boolean - ,true - все прошло хорошо
Throws:
- ValidationError, code = 404 - часть с таким id не найдена
- ValidationError, code = 400 - не передана partId
this: Document
Param | Description |
---|---|
partId | id части для удаления |
document.saveDoc() ⇒ Document
Kind: instance method of Document
Throws:
- DbError , code = 500 - ошибка базы данных
Functiontype: generator
Document.formatToSearch(UAMS, WT, userId) ⇒ Object
Kind: static method of Document
Returns: Object -
{
title: 'Первый документ',
author: {
username: 'Антон Зуев',
id: 577aa958445338a73b232aff
},
likes: {
liked: true,
amount: 2
},
dislikes: {
disliked: false,
amount: 0
},
rating: 2,
type: {
id: 575195b2165f1e79574c71ff,
title: 'Курсовая работа'
},
watches: 0,
id: 56fe9c4ca960bcce0e74871f,
description: "Описание документа"
}
// пример использования
yield* res.formatToSearch(UAMS, RDS.getWorkTypeModel(), '56fe9c4ca960bcce0e74871f');
Param | Description |
---|---|
UAMS | объект модуля UAMS |
WT | объект модели worktype, (RDS.getWorkTypeModel()); |
userId | для кого форматируется документ(нужен для проставки liked и disliked) |
Document.getDocumentsBy(title, context, page) ⇒ Promise | Promise.<T>
Получение документов по названию и контексту
Kind: static method of Document
Param | Type | Description |
---|---|---|
title | String | название |
context | Object | контекст |
context.university | Mongoose.Types.ObjectId | id университета |
context.faculty | Mongoose.Types.ObjectId | id факультета |
context.subject | Mongoose.Types.ObjectId | id предмета |
context.type | Mongoose.Types.ObjectId | id типа |
context.year | Number | курс(номер) |
page | сколько страниц пропустить |
Example
<pre>
Выход - массив из документов
Перед отдачей пользователю нужно у каждого документа вызвать document.formatToSearch
</pre>
Document.addLike(documentId, userId) ⇒ Boolean
Метод для добавления like к документу.
Kind: static method of Document
Returns: Boolean - result - true: лайк добавлен, false: лайк не добавлен(скорее всего уже был);
Throws:
- DbError , code = 404 - Не найден документ по переданному id
Functiontype: generator
Param | Type | Description |
---|---|---|
documentId | Mongoose.Types.ObjectId | id документа |
userId | Mongoose.Types.ObjectId | id пользователя |
Document.addDislike(documentId, userId) ⇒ Boolean
Метод для добавления dislike к документу.
Kind: static method of Document
Returns: Boolean - result - true: дизлайк добавлен, false: дизлайк не добавлен(скорее всего уже был);
Throws:
- DbError , code = 404 - Не найден документ по переданному id
Functiontype: generator
Param | Type | Description |
---|---|---|
documentId | Mongoose.Types.ObjectId | id документа |
userId | Mongoose.Types.ObjectId | id пользователя |
Document.addWatch(documentId) ⇒ Boolean
Метод для добавления просмотра к документу.
Kind: static method of Document
Returns: Boolean - result - true: просмотр добавлен, false: просмотр не добавлен(скорее всего уже был);
Throws:
- DbError , code = 404 - Не найден документ по переданному id
Functiontype: generator
Param | Type | Description |
---|---|---|
documentId | Mongoose.Types.ObjectId | id документа |
Document.addDownload(documentId, userId) ⇒ Boolean
Метод для добавления скачивания к документу.
Kind: static method of Document
Returns: Boolean - result - true: скачивание добавлено, false: скачивание не добавлено(скорее всего уже было);
Throws:
- DbError , code = 404 - Не найден документ по переданному id
Functiontype: generator
Param | Type | Description |
---|---|---|
documentId | Mongoose.Types.ObjectId | id документа |
userId | Mongoose.Types.ObjectId | id пользователя |
Document.addComment(documentId, comment) ⇒ Boolean
Метод для добавления комментария к документу.
Kind: static method of Document
Returns: Boolean - result - true: комментарий добавлен, false: что-то непонятное произошло
Throws:
- DbError , code = 404 - Не найден документ по переданному id
Functiontype: generator
Param | Type | Description |
---|---|---|
documentId | Mongoose.Types.ObjectId | id документа |
comment | Object | объект комментария |
comment.text | String | текст комментария |
comment.author | Mongoose.Types.ObjectId | id автора |
Document.getComments(documentId, date) ⇒ Promise
Метод для добавления комментария к документу.
Kind: static method of Document
Throws:
- DbError , code = 404 - Не найден документ по переданному id
- DbError , code = 500 - какая-то ошибка БД
Fulfill: Comment[] result - массив комментариев
Param | Type | Description |
---|---|---|
documentId | Mongoose.Types.ObjectId | id документа |
date | Date | время последнего комментария |
BZ~validateContext(rawContext) ⇒ Object
Kind: inner method of BZ
Param |
---|
rawContext |
BZ~Comment : object
Kind: inner typedef of BZ
Properties
Name | Type | Description |
---|---|---|
author | Mongoose.Types.ObjectId | отправитель |
created | Date | дата создания |
text | String | текст комментария |
"_id" | Mongoose.Types.ObjectId | id комментария |
BZ~Part : object
Kind: inner typedef of BZ
Properties
Name | Type | Description |
---|---|---|
url | String | строка для скачивания |
serialNumber | Number | порядковый номер файла |
_id | Mongoose.Types.ObjectId | идентификатор части |