Passed
Push — main ( 8785b1...fdb7a5 )
by Alexis
01:04
created

endpoints.snippets   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 38
dl 0
loc 55
rs 10
c 0
b 0
f 0
wmc 12

4 Methods

Rating   Name   Duplication   Size   Complexity  
B Snippets.update() 0 22 6
A Snippets.fetch() 0 2 1
A Snippets.delete() 0 3 1
A Snippets.create() 0 17 4
1
from .base import Resource
2
3
4
# =======================================================
5
# Snippets
6
# =======================================================
7
class Snippets(Resource):
8
    def fetch(self):
9
        return self._get("/snippets")
10
11
    def create(self,
12
               name:            str,
13
               content:         str  = None,
14
               tags:            list = None,
15
               content_as_html: bool = False):
16
        snippet = {
17
            "name": name,
18
        }
19
20
        if content is not None:
21
            snippet["content"] = {
22
                "html" if content_as_html else "text": content,
23
            }
24
        if tags is not None:
25
            snippet["tags"] = ",".join(tags)
26
27
        return self._post("/snippets", data={"snippet": snippet})
28
29
    def update(self,
30
               snippet_id:      str,
31
               name:            str  = None,
32
               content:         str  = None,
33
               tags:            list = None,
34
               content_as_html: bool = False):
35
36
        snippet = {}
37
38
        if name is not None:
39
            snippet["name"] = name
40
        if content is not None:
41
            snippet["content"] = {
42
                "html" if content_as_html else "text": content,
43
            }
44
        if tags is not None:
45
            snippet["tags"] = ",".join(tags)
46
47
        if len(snippet.keys()) == 0:
48
            return
49
50
        return self._put("/snippets/{snippet_id}".format(snippet_id=snippet_id), data={"snippet": snippet})
51
52
    def delete(self,
53
               snippet_id: str):
54
        return self._delete("/snippets/{snippet_id}".format(snippet_id=snippet_id))
55