2020-10-14 21:38:36 +02:00
|
|
|
from typing import List
|
|
|
|
|
|
|
|
from requests import Session
|
|
|
|
|
2020-10-19 17:43:08 +02:00
|
|
|
from paperlibrary.api.models import Author, PDF, Keyword
|
2020-10-14 21:38:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
class PaperLibraryAPI:
|
|
|
|
|
|
|
|
def __init__(self, baseURL: str, auth_token: str):
|
|
|
|
self.baseURL = baseURL
|
|
|
|
self.auth_token = auth_token
|
|
|
|
self.s = Session()
|
|
|
|
self.s.headers.update({"Authorization": "Token " + auth_token})
|
|
|
|
|
|
|
|
def fetch_authors(self) -> List[Author]:
|
|
|
|
r = self.s.get(self.baseURL + "authors/")
|
|
|
|
return Author.schema().loads(r.text, many=True)
|
|
|
|
|
2020-10-19 17:43:08 +02:00
|
|
|
def fetch_keywords(self) -> List[Author]:
|
|
|
|
r = self.s.get(self.baseURL + "keywords/")
|
|
|
|
return Keyword.schema().loads(r.text, many=True)
|
|
|
|
|
2020-10-14 21:38:36 +02:00
|
|
|
def fetch_pdfs(self) -> List[PDF]:
|
|
|
|
r = self.s.get(self.baseURL + "pdfs/")
|
|
|
|
return PDF.schema().loads(r.text, many=True)
|