forked from 0x2620/pandora
update api docs
This commit is contained in:
parent
9c28041171
commit
7cfdf7b8db
3 changed files with 192 additions and 178 deletions
|
@ -29,16 +29,13 @@ def get_document_or_404_json(id):
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def addDocument(request, data):
|
def addDocument(request, data):
|
||||||
'''
|
'''
|
||||||
add document(s) to item
|
Adds one or more documents to one or more items
|
||||||
takes {
|
takes {
|
||||||
item: string or [string]
|
item: string or [string], // one or more item ids
|
||||||
|
id: string or [string] // one or more document ids
|
||||||
id: string
|
}
|
||||||
or
|
returns {}
|
||||||
ids: [string]
|
see: editDocument, findDocument, getDocument, removeDocument, sortDocuments
|
||||||
}
|
|
||||||
returns {
|
|
||||||
}
|
|
||||||
'''
|
'''
|
||||||
response = json_response()
|
response = json_response()
|
||||||
if 'ids' in data:
|
if 'ids' in data:
|
||||||
|
@ -68,16 +65,20 @@ actions.register(addDocument, cache=False)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def editDocument(request, data):
|
def editDocument(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
takes {
|
||||||
id: string
|
id: string, // document id
|
||||||
name: string
|
name: string, // new document name
|
||||||
description: string
|
description: string // new document description
|
||||||
item(optional): edit descriptoin per item
|
item: string // item id (optional)
|
||||||
}
|
}
|
||||||
returns {
|
returns {
|
||||||
id:
|
id:
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
notes: If `item` is present, this will not edit the global description of
|
||||||
|
the document, but its specific description in the context of the given
|
||||||
|
item.
|
||||||
|
see: addDocument, findDocument, getDocument, removeDocument, sortDocuments
|
||||||
'''
|
'''
|
||||||
response = json_response()
|
response = json_response()
|
||||||
item = 'item' in data and Item.objects.get(public_id=data['item']) or None
|
item = 'item' in data and Item.objects.get(public_id=data['item']) or None
|
||||||
|
@ -140,32 +141,22 @@ def parse_query(data, user):
|
||||||
|
|
||||||
def findDocuments(request, data):
|
def findDocuments(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
takes {
|
||||||
query: {
|
query: object, // query object, see `find`
|
||||||
conditions: [
|
sort: [object], // list of sort objects, see `find`
|
||||||
{
|
range: [int, int], // range of results, per current sort order
|
||||||
key: 'user',
|
keys: [string] // list of keys to return
|
||||||
value: 'something',
|
}
|
||||||
operator: '='
|
returns {
|
||||||
}
|
items: [{ // list of documents
|
||||||
]
|
key: value, // item key and value
|
||||||
operator: ","
|
... // more key/value pairs
|
||||||
},
|
}]
|
||||||
sort: [{key: 'name', operator: '+'}],
|
}
|
||||||
range: [0, 100]
|
Notes: Query keys and keys to be returned can be 'extension', 'name',
|
||||||
keys: []
|
'size' and 'user'.
|
||||||
}
|
see: addDocument, editDocument, find, getDocument, removeDocument,
|
||||||
|
sortDocuments
|
||||||
possible query keys:
|
|
||||||
name, user, extension, size
|
|
||||||
|
|
||||||
possible keys:
|
|
||||||
name, user, extension, size
|
|
||||||
|
|
||||||
}
|
|
||||||
returns {
|
|
||||||
items: [object]
|
|
||||||
}
|
|
||||||
'''
|
'''
|
||||||
query = parse_query(data, request.user)
|
query = parse_query(data, request.user)
|
||||||
|
|
||||||
|
@ -193,13 +184,16 @@ actions.register(findDocuments)
|
||||||
|
|
||||||
def getDocument(request, data):
|
def getDocument(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Gets a document by id
|
||||||
id: string,
|
takes {
|
||||||
keys: [string]
|
id: string, // document id
|
||||||
}
|
keys: [string] // list of properties to return
|
||||||
returns {
|
}
|
||||||
key: value
|
returns {
|
||||||
}
|
key: value, // document key and value
|
||||||
|
... // more key/value pairs
|
||||||
|
}
|
||||||
|
see: addDocument, editDocument, findDocument, removeDocument, sortDocuments
|
||||||
'''
|
'''
|
||||||
response = json_response({})
|
response = json_response({})
|
||||||
data['keys'] = data.get('keys', [])
|
data['keys'] = data.get('keys', [])
|
||||||
|
@ -211,17 +205,15 @@ actions.register(getDocument)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def removeDocument(request, data):
|
def removeDocument(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Removes one or more documents, either from an item or from the database
|
||||||
id: string,
|
takes {
|
||||||
or
|
id or ids: string or [string], // one or more document ids
|
||||||
ids: [string]
|
item: string // item id (optional)
|
||||||
item: string
|
}
|
||||||
}
|
returns {}
|
||||||
|
notes: If `item` is present, this removes the documents from that item.
|
||||||
if item is passed, remove relation to item
|
Otherwise, it removes the documents from the database.
|
||||||
otherwise remove document
|
see: addDocument, editDocument, findDocument, getDocument, sortDocuments
|
||||||
returns {
|
|
||||||
}
|
|
||||||
'''
|
'''
|
||||||
response = json_response()
|
response = json_response()
|
||||||
|
|
||||||
|
@ -253,12 +245,13 @@ actions.register(removeDocument, cache=False)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def sortDocuments(request, data):
|
def sortDocuments(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Sets the sort order for the documents related to a given item
|
||||||
item: string
|
takes {
|
||||||
ids: [string]
|
item: string, // item id
|
||||||
}
|
ids: [string] // list of document ids
|
||||||
returns {
|
}
|
||||||
}
|
returns {}
|
||||||
|
see: addDocument, editDocument, findDocument, removeDocument, sortDocuments
|
||||||
'''
|
'''
|
||||||
index = 0
|
index = 0
|
||||||
item = Item.objects.get(public_id=data['item'])
|
item = Item.objects.get(public_id=data['item'])
|
||||||
|
|
|
@ -244,14 +244,16 @@ actions.register(getEdit)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def addEdit(request, data):
|
def addEdit(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Adds an edit
|
||||||
[name],
|
takes {
|
||||||
[type]
|
name: string, // name (optional)
|
||||||
}
|
type: string // 'static' or 'smart'
|
||||||
returns {
|
}
|
||||||
id
|
returns {
|
||||||
...
|
id: string // edit id
|
||||||
}
|
... // more edit properties
|
||||||
|
}
|
||||||
|
see: editEdit, findEdit, removeEdit, sortEdits
|
||||||
'''
|
'''
|
||||||
data['name'] = re.sub(' \[\d+\]$', '', data.get('name', 'Untitled')).strip()
|
data['name'] = re.sub(' \[\d+\]$', '', data.get('name', 'Untitled')).strip()
|
||||||
name = data['name']
|
name = data['name']
|
||||||
|
@ -299,12 +301,18 @@ actions.register(addEdit, cache=False)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def editEdit(request, data):
|
def editEdit(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Edits an edit (yes!)
|
||||||
id
|
takes {
|
||||||
}
|
id: string, // edit id
|
||||||
returns {
|
key: value, // property id and new value
|
||||||
...
|
... // more key/value pairs
|
||||||
}
|
}
|
||||||
|
returns {
|
||||||
|
id: string, // edit id
|
||||||
|
key: value, // property id and new value
|
||||||
|
... // more key/value pairs
|
||||||
|
}
|
||||||
|
see: addEdit, findEdit, removeEdit, sortEdits
|
||||||
'''
|
'''
|
||||||
edit = get_edit_or_404_json(data['id'])
|
edit = get_edit_or_404_json(data['id'])
|
||||||
response = json_response()
|
response = json_response()
|
||||||
|
@ -324,12 +332,12 @@ actions.register(editEdit, cache=False)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def removeEdit(request, data):
|
def removeEdit(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Removes an edit
|
||||||
...
|
takes {
|
||||||
}
|
id: string // edit id
|
||||||
returns {
|
}
|
||||||
...
|
returns {}
|
||||||
}
|
see: addEdit, editEdit findEdit, sortEdits
|
||||||
'''
|
'''
|
||||||
edit = get_edit_or_404_json(data['id'])
|
edit = get_edit_or_404_json(data['id'])
|
||||||
response = json_response()
|
response = json_response()
|
||||||
|
@ -373,32 +381,27 @@ def parse_query(data, user):
|
||||||
|
|
||||||
def findEdits(request, data):
|
def findEdits(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Finds edits for a given query
|
||||||
query: {
|
takes {
|
||||||
conditions: [
|
query: object, // query object, see `find`
|
||||||
{
|
sort: [], // list of sort objects, see `find`
|
||||||
key: 'user',
|
range: [int, int], // range of results
|
||||||
value: 'something',
|
keys: [string] // list of properties to return
|
||||||
operator: '='
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
operator: ","
|
|
||||||
},
|
|
||||||
sort: [{key: 'name', operator: '+'}],
|
|
||||||
range: [0, 100]
|
|
||||||
keys: []
|
|
||||||
}
|
|
||||||
|
|
||||||
possible query keys:
|
possible query keys:
|
||||||
name, user, featured, subscribed
|
name, user, featured, subscribed
|
||||||
|
|
||||||
possible keys:
|
possible keys:
|
||||||
name, user, featured, subscribed, query
|
name, user, featured, subscribed, query
|
||||||
|
|
||||||
}
|
}
|
||||||
returns {
|
returns {
|
||||||
items: [object]
|
items: [object]
|
||||||
}
|
}
|
||||||
|
notes: Possible query keys are 'featured', 'name', 'subscribed' and 'user',
|
||||||
|
possible keys are 'featured', 'name', 'query', 'subscribed' and 'user'.
|
||||||
|
see: editEdits, find, removeEdit, sortEdits
|
||||||
'''
|
'''
|
||||||
query = parse_query(data, request.user)
|
query = parse_query(data, request.user)
|
||||||
|
|
||||||
|
@ -437,10 +440,13 @@ actions.register(findEdits)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def subscribeToEdit(request, data):
|
def subscribeToEdit(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Adds an edit to favorites
|
||||||
id: string,
|
takes {
|
||||||
}
|
id: string, // edit id
|
||||||
returns {}
|
user: string // username (admin-only)
|
||||||
|
}
|
||||||
|
returns {}
|
||||||
|
see: unsubscribeFromEdit
|
||||||
'''
|
'''
|
||||||
edit = get_edit_or_404_json(data['id'])
|
edit = get_edit_or_404_json(data['id'])
|
||||||
user = request.user
|
user = request.user
|
||||||
|
@ -461,11 +467,12 @@ actions.register(subscribeToEdit, cache=False)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def unsubscribeFromEdit(request, data):
|
def unsubscribeFromEdit(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
takes {
|
||||||
id: string,
|
id: string, // edit id
|
||||||
user: username(only admins)
|
user: string // username (admin-only)
|
||||||
}
|
}
|
||||||
returns {}
|
returns {}
|
||||||
|
see: subscribeToEdit
|
||||||
'''
|
'''
|
||||||
edit = get_edit_or_404_json(data['id'])
|
edit = get_edit_or_404_json(data['id'])
|
||||||
user = request.user
|
user = request.user
|
||||||
|
@ -480,14 +487,13 @@ actions.register(unsubscribeFromEdit, cache=False)
|
||||||
@login_required_json
|
@login_required_json
|
||||||
def sortEdits(request, data):
|
def sortEdits(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
takes {
|
||||||
section: 'personal',
|
section: string, // 'personal', 'favorite' or 'featured'
|
||||||
ids: [1,2,4,3]
|
ids: [string] // ordered list of edit ids
|
||||||
}
|
}
|
||||||
known sections: 'personal', 'public', 'featured'
|
returns {}
|
||||||
featured can only be edited by admins
|
notes: Sorting featured edits requires a specific per-user capability
|
||||||
|
see: editEdits, findEdits, removeEdit
|
||||||
returns {}
|
|
||||||
'''
|
'''
|
||||||
position = 0
|
position = 0
|
||||||
section = data['section']
|
section = data['section']
|
||||||
|
|
|
@ -103,7 +103,7 @@ def find(request, data):
|
||||||
Finds items for a given query
|
Finds items for a given query
|
||||||
takes {
|
takes {
|
||||||
clipsQuery: object, // clips query object (optional)
|
clipsQuery: object, // clips query object (optional)
|
||||||
group: string, // item key to group elements by
|
group: string, // item key to group results by (optional)
|
||||||
keys: [string], // list of keys to return, [] for all (optional)
|
keys: [string], // list of keys to return, [] for all (optional)
|
||||||
positions: [string], // list of item ids (optional)
|
positions: [string], // list of item ids (optional)
|
||||||
query: { // query object
|
query: { // query object
|
||||||
|
@ -125,34 +125,34 @@ def find(request, data):
|
||||||
operator: string // sort order, '+' or '-'
|
operator: string // sort order, '+' or '-'
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
returns { // if `keys` is present (returns items)
|
returns { // if `keys` is present
|
||||||
items: [
|
items: [ // returns list of matching items
|
||||||
{
|
{
|
||||||
id: string, // item id
|
id: string, // item id
|
||||||
... // more item properties
|
... // more item properties
|
||||||
},
|
},
|
||||||
... // more items
|
... // more items
|
||||||
]
|
]
|
||||||
} or { // if `clipsQuery` is present (returns clips)
|
} or { // if `clipsQuery` is present
|
||||||
clips: [
|
clips: [ // returns list of matching clips
|
||||||
{
|
{
|
||||||
id: string, // clip id
|
id: string, // clip id
|
||||||
... // more clip properties
|
... // more clip properties
|
||||||
},
|
},
|
||||||
... // more clips
|
... // more clips
|
||||||
]
|
]
|
||||||
} or { if `group` is present (returns results for filters)
|
} or { // if `group` is present
|
||||||
items: [
|
items: [ // returns results for filters
|
||||||
{
|
{
|
||||||
name: string, // value for item key specified as group
|
name: string, // value for item key specified as group
|
||||||
items: int // number of matches
|
items: int // number of matches
|
||||||
},
|
},
|
||||||
... // more group objects
|
... // more group objects
|
||||||
]
|
]
|
||||||
} or { // if `keys` is missing (returns totals)
|
} or { // if `keys` is missing
|
||||||
items: int // total number of items
|
items: int // returns total number of items
|
||||||
} or { // if `positions` is present (returns positions of given items)
|
} or { // if `positions` is present ()
|
||||||
positions: {
|
positions: { // returns positions of given items
|
||||||
id: position, // position of the item, per current sort order
|
id: position, // position of the item, per current sort order
|
||||||
... // more id/position pairs
|
... // more id/position pairs
|
||||||
}
|
}
|
||||||
|
@ -160,7 +160,7 @@ def find(request, data):
|
||||||
notes: Comparison operators are '=' (contains) '==' (is), '^' (starts with),
|
notes: Comparison operators are '=' (contains) '==' (is), '^' (starts with),
|
||||||
'$' (ends with), '<', '<=', '>', or '>=', each optionally prefixed with '!'
|
'$' (ends with), '<', '<=', '>', or '>=', each optionally prefixed with '!'
|
||||||
(not).
|
(not).
|
||||||
see: add, edit, remove
|
see: add, edit, get, lookup, remove, upload
|
||||||
'''
|
'''
|
||||||
if settings.JSON_DEBUG:
|
if settings.JSON_DEBUG:
|
||||||
print json.dumps(data, indent=2)
|
print json.dumps(data, indent=2)
|
||||||
|
@ -288,13 +288,14 @@ def autocomplete(request, data):
|
||||||
takes {
|
takes {
|
||||||
key: string,
|
key: string,
|
||||||
value: string,
|
value: string,
|
||||||
operator: string // '=', '==', '^', '$'
|
operator: string, // '=', '==', '^', '$'
|
||||||
query: object // item query to limit results
|
query: object, // item query to limit results, see `find`
|
||||||
range: [int, int]
|
range: [int, int]
|
||||||
}
|
}
|
||||||
returns {
|
returns {
|
||||||
items: [string, ...] // array of matching values
|
items: [string, ...] // array of matching values
|
||||||
}
|
}
|
||||||
|
see: autocompleteEntities
|
||||||
'''
|
'''
|
||||||
if not 'range' in data:
|
if not 'range' in data:
|
||||||
data['range'] = [0, 10]
|
data['range'] = [0, 10]
|
||||||
|
@ -348,6 +349,7 @@ actions.register(autocomplete)
|
||||||
|
|
||||||
def findId(request, data):
|
def findId(request, data):
|
||||||
'''
|
'''
|
||||||
|
Undocumented
|
||||||
takes {
|
takes {
|
||||||
'id': string
|
'id': string
|
||||||
'title': string
|
'title': string
|
||||||
|
@ -378,14 +380,16 @@ def getMetadata(request, data):
|
||||||
'''
|
'''
|
||||||
Gets metadata from an external service
|
Gets metadata from an external service
|
||||||
takes {
|
takes {
|
||||||
id: string,
|
id: string, // item id
|
||||||
keys: [string]
|
keys: [string] // list of item keys to return
|
||||||
}
|
}
|
||||||
|
|
||||||
returns {
|
returns {
|
||||||
key: value
|
key: value // item key and value
|
||||||
..
|
... // more key/value pairs
|
||||||
}
|
}
|
||||||
|
notes: This can be used to populate metadata from a remote source, like
|
||||||
|
IMDb.
|
||||||
|
see: getIds, updateExternalData
|
||||||
'''
|
'''
|
||||||
response = json_response({})
|
response = json_response({})
|
||||||
if settings.DATA_SERVICE:
|
if settings.DATA_SERVICE:
|
||||||
|
@ -408,20 +412,23 @@ actions.register(getMetadata)
|
||||||
|
|
||||||
def getIds(request, data):
|
def getIds(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Gets ids from an external service
|
||||||
title: string,
|
takes {
|
||||||
director: [string],
|
title: string, // title
|
||||||
year: int
|
director: [string], // list of directors
|
||||||
}
|
year: int // year
|
||||||
|
}
|
||||||
returns {
|
returns {
|
||||||
items: [{
|
items: [{
|
||||||
tite: string,
|
title: string, // title
|
||||||
director: [string],
|
director: [string], // list of directors
|
||||||
year: int,
|
year: int, // year
|
||||||
originalTitle: string
|
originalTitle: string // original title
|
||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
notes: This can be used to populate metadata from a remote source, like
|
||||||
|
IMDb.
|
||||||
|
see: getMetadata, updateExternalData
|
||||||
'''
|
'''
|
||||||
response = json_response({})
|
response = json_response({})
|
||||||
if settings.DATA_SERVICE:
|
if settings.DATA_SERVICE:
|
||||||
|
@ -435,13 +442,16 @@ actions.register(getIds)
|
||||||
|
|
||||||
def get(request, data):
|
def get(request, data):
|
||||||
'''
|
'''
|
||||||
takes {
|
Gets an item by id
|
||||||
id: string,
|
takes {
|
||||||
keys: [string]
|
id: string, // item id
|
||||||
}
|
keys: [string] // item properties to return
|
||||||
returns {
|
}
|
||||||
key: value
|
returns {
|
||||||
}
|
key: value, // item key and value
|
||||||
|
... // more key/value pairs
|
||||||
|
}
|
||||||
|
see: add, edit, find, lookup, remove, upload
|
||||||
'''
|
'''
|
||||||
response = json_response({})
|
response = json_response({})
|
||||||
data['keys'] = data.get('keys', [])
|
data['keys'] = data.get('keys', [])
|
||||||
|
@ -478,14 +488,14 @@ def add(request, data):
|
||||||
'''
|
'''
|
||||||
Adds a new item (without video)
|
Adds a new item (without video)
|
||||||
takes {
|
takes {
|
||||||
title: string, // item title (optional)
|
title: string, // title (optional)
|
||||||
}
|
}
|
||||||
returns {
|
returns {
|
||||||
id: string, // item id
|
id: string, // item id
|
||||||
title: string, // item title
|
title: string, // title
|
||||||
... // more item properties
|
... // more item properties
|
||||||
}
|
}
|
||||||
see: edit, find, get, remove, upload
|
see: edit, find, get, lookup, remove, upload
|
||||||
'''
|
'''
|
||||||
if not request.user.get_profile().capability('canAddItems'):
|
if not request.user.get_profile().capability('canAddItems'):
|
||||||
response = json_response(status=403, text='permissino denied')
|
response = json_response(status=403, text='permissino denied')
|
||||||
|
@ -511,14 +521,14 @@ def edit(request, data):
|
||||||
Edits metadata of an item
|
Edits metadata of an item
|
||||||
takes {
|
takes {
|
||||||
id: string, // item id
|
id: string, // item id
|
||||||
key: value, // property id and new value
|
key: value, // item key and new value
|
||||||
... // more key/value pairs
|
... // more key/value pairs
|
||||||
}
|
}
|
||||||
returns {
|
returns {
|
||||||
key: value // property id and new value
|
key: value // item key and new value
|
||||||
... // more key/value pairs
|
... // more key/value pairs
|
||||||
}
|
}
|
||||||
see: add, find, get, remove, upload
|
see: add, find, get, lookup, remove, upload
|
||||||
'''
|
'''
|
||||||
update_clips = False
|
update_clips = False
|
||||||
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
||||||
|
@ -561,13 +571,12 @@ actions.register(edit, cache=False)
|
||||||
def remove(request, data):
|
def remove(request, data):
|
||||||
'''
|
'''
|
||||||
Removes an item
|
Removes an item
|
||||||
remove item with id, return status is 200/removed on sucess or 403/permission deinied.
|
|
||||||
takes {
|
takes {
|
||||||
id: string // item id
|
id: string // item id
|
||||||
}
|
}
|
||||||
returns {}
|
returns {}
|
||||||
notes: The return status is 200 for success or 403 for permission denied.
|
notes: The return status is 200 for success or 403 for permission denied.
|
||||||
see: add, edit, find, get, upload
|
see: add, edit, find, get, lookup, upload
|
||||||
'''
|
'''
|
||||||
response = json_response({})
|
response = json_response({})
|
||||||
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
||||||
|
@ -593,6 +602,7 @@ def setPosterFrame(request, data):
|
||||||
position: float // position in seconds
|
position: float // position in seconds
|
||||||
}
|
}
|
||||||
returns {}
|
returns {}
|
||||||
|
see: setPoster
|
||||||
'''
|
'''
|
||||||
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
||||||
if item.editable(request.user):
|
if item.editable(request.user):
|
||||||
|
@ -621,6 +631,7 @@ def setPoster(request, data):
|
||||||
width: int // width in px
|
width: int // width in px
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
see: setPosterFrame
|
||||||
'''
|
'''
|
||||||
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
||||||
response = json_response()
|
response = json_response()
|
||||||
|
@ -649,6 +660,9 @@ def updateExternalData(request, data):
|
||||||
id: string // item id
|
id: string // item id
|
||||||
}
|
}
|
||||||
returns {}
|
returns {}
|
||||||
|
notes: This can be used to populate metadata from a remote source, like
|
||||||
|
IMDb.
|
||||||
|
see: getIds, getMetadata
|
||||||
'''
|
'''
|
||||||
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
item = get_object_or_404_json(models.Item, public_id=data['id'])
|
||||||
response = json_response()
|
response = json_response()
|
||||||
|
@ -674,6 +688,7 @@ def lookup(request, data):
|
||||||
title: string, // title
|
title: string, // title
|
||||||
year: string // year
|
year: string // year
|
||||||
}
|
}
|
||||||
|
see: add, edit, find, get, remove, upload
|
||||||
'''
|
'''
|
||||||
if 'id' in data:
|
if 'id' in data:
|
||||||
i = models.Item.objects.get(public_id=data['id'])
|
i = models.Item.objects.get(public_id=data['id'])
|
||||||
|
|
Loading…
Reference in a new issue