Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
it-bott-integrasjoner
topdesk-client
Commits
0fa62904
Commit
0fa62904
authored
Jan 14, 2020
by
Jo Sama
😱
Browse files
Add list and create methods for ExtraA
parent
7c296bac
Changes
2
Hide whitespace changes
Inline
Side-by-side
topdesk_client/client.py
View file @
0fa62904
...
...
@@ -7,7 +7,8 @@ from typing import Optional, List, Iterator, Union
from
urllib.parse
import
urljoin
,
urlparse
from
.models
import
(
Branch
,
BranchReference
,
Operator
,
OperatorGroup
,
PermissionGroup
,
Person
,
Department
,
DepartmentRef
,
BudgetHolder
,
BudgetHolderRef
)
Person
,
Department
,
DepartmentRef
,
BudgetHolder
,
BudgetHolderRef
,
ExtraA
,
ExtraARef
)
logger
=
logging
.
getLogger
(
__name__
)
...
...
@@ -67,6 +68,9 @@ class Endpoints:
operator_id
+
'/'
),
'permissiongroups'
)
def
get_extra_fields_a
(
self
):
return
self
.
_prepend_base_url
(
'personExtraFieldAEntries/'
)
class
TopDeskClient
:
def
__init__
(
self
,
...
...
@@ -421,5 +425,25 @@ class TopDeskClient:
self
.
_select_group_id_by_type
(
permission_group
),
self
.
delete
)
def
list_extra_fields_a
(
self
)
->
List
[
ExtraARef
]:
r
=
self
.
get
(
self
.
urls
.
get_extra_fields_a
(),
return_response
=
True
)
if
r
.
status_code
==
200
:
return
[
ExtraARef
.
from_dict
(
x
)
for
x
in
r
.
json
()]
else
:
r
.
raise_for_status
()
return
None
def
create_extra_fields_a
(
self
,
extra_a
:
ExtraA
)
->
List
[
ExtraA
]:
r
=
self
.
post
(
self
.
urls
.
get_extra_fields_a
(),
headers
=
{
'Content-Type'
:
'application/json'
},
return_response
=
True
,
data
=
extra_a
.
json
())
if
r
.
status_code
==
201
:
return
ExtraA
.
from_dict
(
r
.
json
())
else
:
r
.
raise_for_status
()
return
None
def
get_client
(
config
):
return
TopDeskClient
(
**
config
)
topdesk_client/models.py
View file @
0fa62904
...
...
@@ -249,6 +249,25 @@ class BudgetHolderRef(BaseModel):
kwargs
[
'include'
]
=
{
'id'
}
return
super
().
dict
(
*
args
,
**
kwargs
)
class
ExtraA
(
BaseModel
):
id
:
Optional
[
str
]
name
:
str
externalLink
:
List
[
ExternalLink
]
=
[]
def
dict
(
self
,
*
args
,
**
kwargs
):
kwargs
[
'exclude'
]
=
{
'id'
}
return
super
().
dict
(
*
args
,
**
kwargs
)
class
ExtraARef
(
BaseModel
):
id
:
str
name
:
Optional
[
str
]
def
dict
(
self
,
*
args
,
**
kwargs
):
kwargs
[
'include'
]
=
{
'id'
}
return
super
().
dict
(
*
args
,
**
kwargs
)
class
Person
(
BaseModel
):
id
:
Optional
[
str
]
...
...
@@ -266,6 +285,7 @@ class Person(BaseModel):
department
:
Optional
[
DepartmentRef
]
budgetHolder
:
Optional
[
BudgetHolderRef
]
jobTitle
:
Optional
[
str
]
personExtraFieldA
:
Optional
[
ExtraARef
]
class
Config
:
fields
=
{
...
...
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