Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
minor
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Christian Knuchel
minor
Commits
443c8b02
Commit
443c8b02
authored
Jan 26, 2019
by
Fence
🌈
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add songs api
parent
8de2d380
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
8 deletions
+31
-8
minor/controller/music.py
minor/controller/music.py
+31
-8
No files found.
minor/controller/music.py
View file @
443c8b02
import
os
import
os.path
from
pprint
import
pprint
from
flask
import
json_available
,
request
,
jsonify
,
Response
import
json
from
flask
import
request
,
jsonify
,
Response
from
flask_controller
import
FlaskController
,
route
from
bson
import
ObjectId
from
werkzeug.utils
import
secure_filename
from
mutagen.mp3
import
MP3
from
minor.decorators
import
json_required
,
auth_required
...
...
@@ -34,16 +33,40 @@ class MusicController(FlaskController):
return
jsonify
({
"code"
:
400
,
"message"
:
"bad_request"
}),
400
@
auth_required
@
route
(
"/song/<id>"
)
@
route
(
"/songs"
)
def
all_songs
(
self
,
payload
=
None
):
start
=
request
.
args
.
get
(
"start"
)
limit
=
20
if
start
is
None
:
start
=
0
else
:
start
=
int
(
start
)
-
1
songs
=
Song
.
objects
.
skip
(
start
).
limit
(
limit
)
count
=
Song
.
objects
.
count
()
# ech mongo_engine is garbage
songs
=
list
(
map
(
lambda
x
:
json
.
loads
(
x
.
to_json
()),
songs
))
# check if songs is empty
if
songs
:
return
jsonify
({
"code"
:
200
,
"message"
:
"ok"
,
"data"
:
songs
,
"count"
:
count
,
"limit"
:
limit
}),
200
else
:
return
jsonify
({
"code"
:
400
,
"message"
:
"bad_request"
}),
400
@
auth_required
@
route
(
"/songs/<id>"
)
def
song
(
self
,
id
,
payload
=
None
):
song
=
Song
.
objects
.
get
(
id
=
id
)
if
song
is
not
None
:
return
jsonify
({
"code"
:
200
,
"message"
:
"ok"
,
"data"
:
song
}),
200
return
jsonify
({
"code"
:
200
,
"message"
:
"ok"
,
"data"
:
json
.
loads
(
song
.
to_json
())
}),
200
else
:
return
jsonify
({
"code"
:
400
,
"message"
:
"bad_request"
}),
400
@
auth_required
@
route
(
"/song/<id>/hasfile"
)
@
route
(
"/song
s
/<id>/hasfile"
)
def
song_has_file
(
self
,
id
,
payload
=
None
):
song
=
Song
.
objects
.
get
(
id
=
id
)
if
song
is
not
None
:
...
...
@@ -57,7 +80,7 @@ class MusicController(FlaskController):
@
auth_required
@
json_required
@
route
(
"/song"
,
methods
=
[
"POST"
])
@
route
(
"/song
s
"
,
methods
=
[
"POST"
])
def
song_post
(
self
,
payload
=
None
):
json
=
request
.
get_json
()
try
:
...
...
@@ -85,7 +108,7 @@ class MusicController(FlaskController):
return
jsonify
({
"code"
:
400
,
"message"
:
"bad_request"
}),
400
@
auth_required
@
route
(
"/song/<id>/upload"
,
methods
=
[
"POST"
])
@
route
(
"/song
s
/<id>/upload"
,
methods
=
[
"POST"
])
def
song_file
(
self
,
id
,
payload
=
None
):
if
'file'
in
request
.
files
:
file
=
request
.
files
[
"file"
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment