mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-12 12:21:34 +00:00
73 lines
No EOL
1.8 KiB
JavaScript
73 lines
No EOL
1.8 KiB
JavaScript
const uuidv4 = require("uuid").v4
|
|
|
|
/**
|
|
* @openapi
|
|
* components:
|
|
* schemas:
|
|
* oldFolderId:
|
|
* type: string
|
|
* description: The ID of folders created on server version 2.2.23 and before.
|
|
* format: "fol_[a-z0-9]{18}"
|
|
* example: fol_o78uaoeuh78h6aoeif
|
|
* newFolderId:
|
|
* type: string
|
|
* description: The folder ID for any folders added after 2.3.0.
|
|
* format: uuid
|
|
* example: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
|
|
* folderId:
|
|
* type: string
|
|
* anyOf:
|
|
* - $ref: '#/components/schemas/oldFolderId'
|
|
* - $ref: '#/components/schemas/newFolderId'
|
|
* folder:
|
|
* type: object
|
|
* properties:
|
|
* id:
|
|
* $ref: '#/components/schemas/folderId'
|
|
* fullPath:
|
|
* description: The path on the server for the folder. (Read Only)
|
|
* type: string
|
|
* example: /podcasts
|
|
* libraryId:
|
|
* - $ref: '#/components/schemas/libraryId'
|
|
* addedAt:
|
|
* description: The time (in ms since POSIX epoch) when the folder was added. (Read Only)
|
|
* type: integer
|
|
* example: 1650462940610
|
|
*/
|
|
class Folder {
|
|
constructor(folder = null) {
|
|
this.id = null
|
|
this.fullPath = null
|
|
this.libraryId = null
|
|
this.addedAt = null
|
|
|
|
if (folder) {
|
|
this.construct(folder)
|
|
}
|
|
}
|
|
|
|
construct(folder) {
|
|
this.id = folder.id
|
|
this.fullPath = folder.fullPath
|
|
this.libraryId = folder.libraryId
|
|
this.addedAt = folder.addedAt
|
|
}
|
|
|
|
toJSON() {
|
|
return {
|
|
id: this.id,
|
|
fullPath: this.fullPath,
|
|
libraryId: this.libraryId,
|
|
addedAt: this.addedAt
|
|
}
|
|
}
|
|
|
|
setData(data) {
|
|
this.id = data.id || uuidv4()
|
|
this.fullPath = data.fullPath
|
|
this.libraryId = data.libraryId
|
|
this.addedAt = Date.now()
|
|
}
|
|
}
|
|
module.exports = Folder |