Commit b41c27c7 authored by Цой Данил's avatar Цой Данил 💬

#7 added read me file

parent ccf3c81d
## Указания по работе с api
Здесь находятся особенности работы с моей api
## Работа с артистами
- Основной путь: http://localhost:8000/artists
- Имеет два метода в репозитории: получить артистов, и добавить артиста
- Для получения артистов необходимо написать get запрос по указанной выше ссылке
- Для добавления артиста необходимо написать post запрос по указанному выше пути, при этом в запросе должны быть следующие поля:
- {
- name: Принимает строку с именем артиста
- photo: Файл с изображениям артиста
- information: Принимат строку с информацией об артисте
- }
## Работа с альбомами
- Основной путь: http://localhost:8000/albums
- Имеет два метода в репозитории: получить альбом, и добавить альбом
- Для получения альбомов необходимо написать get запрос по указанной выше ссылке
- Для добавления альбомов необходимо написать post запрос по указанному выше пути, при этом в запросе должны быть следующие поля:
- {
- title: Принимает строку с названием альбома
- artist: Принимает id артиста
- releaseYear: Принимает дату выпуска альбом
- coverImage: Файл с изображением альбома
- }
## Работа с треками
- Основной путь: http://localhost:8000/tracks
- Имеет два метода в репозитории: получить треки, и добавить трек
- Для получения треков необходимо написать get запрос по указанной выше ссылке
- Для добавления трека необходимо написать post запрос по указанному выше пути, при этом в запросе должны быть следующие поля:
- {
- title: Принимает строку с названием трека
- album: Принимает id альбома
- length: принимает длину трека ввиде числа
- }
## Работа с пользователями
- Основной путь: http://localhost:8000/users
- Имеет два метода в репозитории: получить добавить пользователя, и залогинить пользователя
- Для добавления пользователя необходимо написать ost запрос по указанному выше пути, при этом в запросе идут следующие поля:
- {
- username: Принимает строку с именем пользователя
- password: Принимает пароль введенный пользователем ввиде строки
- }
- Для логина пользователя необходимо написать post запрос по пути http://localhost:8000/users/sessions, при этом в запросе идут следующие поля:
- {
- username: Принимает строку с именем пользователя
- password: Принимает пароль введенный пользователем ввиде строки
- }
- Если все прошло успешно, то у пользователя появится поле token
## Работа с историей просмотра треков
- Основной путь: http://localhost:8000/track_history
- Имеет метод для создания новой истории. Для этого нужно отправить post запрос по указанному выше пути, при этом в объекте должны быть следующие поля:
- {
- token: Принимает токен залогиненного пользователя
- track: Принимает id трека, который был прослушан
- }
\ No newline at end of file
......@@ -6,7 +6,8 @@ const Schema = mongoose.Schema
const AlbumSchema = new Schema<IAlbum>({
title:{
type: String,
require: true
require: true,
trim: true
},
artist:{
type: Schema.Types.ObjectId,
......@@ -21,6 +22,6 @@ const AlbumSchema = new Schema<IAlbum>({
type: String,
required: true
}
})
}, {versionKey: false})
export const Album = mongoose.model<IAlbum>('Album', AlbumSchema)
\ No newline at end of file
......@@ -6,7 +6,8 @@ const Schema = mongoose.Schema
const ArtistSchema = new Schema<IArtist>({
name:{
type: String,
require: true
require: true,
trim: true
},
photo:{
type: String,
......@@ -14,8 +15,9 @@ const ArtistSchema = new Schema<IArtist>({
},
information:{
type: String,
require: true
require: true,
trim: true
}
})
}, {versionKey: false})
export const Artist = mongoose.model<IArtist>('Artist', ArtistSchema)
\ No newline at end of file
......@@ -7,17 +7,19 @@ const Schema = mongoose.Schema
const TrackSchema = new Schema<ITrack>({
title:{
type: String,
require: true
require: true,
trim: true
},
album:{
type: Schema.Types.ObjectId,
ref: 'Album',
required: true
required: true,
trim: true
},
length:{
type: Number,
required: true
}
})
}, {versionKey: false})
export const Track = mongoose.model<ITrack>('Track', TrackSchema)
\ No newline at end of file
......@@ -8,11 +8,13 @@ const UserSchema: Schema = new Schema<IUser>({
username: {
type: String,
required: true,
unique: true
unique: true,
trim: true
},
password: {
type: String,
required: true
required: true,
trim: true
},
token: {
type: String,
......
......@@ -235,6 +235,7 @@ export class MongooseDB {
const trackExist = await Track.exists({_id: trackHistoryDto.track})
if (!trackExist) throw new Error('Track not found')
const data = await trackHistory.save()
const responseData = await data.populate('user track')
const response: IResponse<ITrackHistory> = {
status: EStatuses.SUCCESS,
result: data,
......
Markdown is supported
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