mirror of
https://github.com/GSA/notifications-admin.git
synced 2025-12-09 14:45:00 -05:00
83 lines
2.7 KiB
Python
83 lines
2.7 KiB
Python
from app.extensions import redis_client
|
|
from app.notify_client import NotifyAdminAPIClient, cache
|
|
|
|
|
|
class TemplateFolderAPIClient(NotifyAdminAPIClient):
|
|
@cache.delete("service-{service_id}-template-folders")
|
|
def create_template_folder(
|
|
self, service_id, name, parent_id=None, created_by_id=None
|
|
):
|
|
data = {"name": name, "parent_id": parent_id}
|
|
if created_by_id:
|
|
data["created_by_id"] = created_by_id
|
|
return self.post("/service/{}/template-folder".format(service_id), data)[
|
|
"data"
|
|
]["id"]
|
|
|
|
@cache.set("service-{service_id}-template-folders")
|
|
def get_template_folders(self, service_id):
|
|
return self.get("/service/{}/template-folder".format(service_id))[
|
|
"template_folders"
|
|
]
|
|
|
|
def get_template_folder(self, service_id, folder_id):
|
|
if folder_id is None:
|
|
return {
|
|
"id": None,
|
|
"name": "Templates",
|
|
"parent_id": None,
|
|
}
|
|
else:
|
|
return next(
|
|
folder
|
|
for folder in self.get_template_folders(service_id)
|
|
if folder["id"] == str(folder_id)
|
|
)
|
|
|
|
@cache.delete("service-{service_id}-template-folders")
|
|
@cache.delete("service-{service_id}-templates")
|
|
def move_to_folder(self, service_id, folder_id, template_ids, folder_ids):
|
|
if folder_id:
|
|
url = "/service/{}/template-folder/{}/contents".format(
|
|
service_id, folder_id
|
|
)
|
|
else:
|
|
url = "/service/{}/template-folder/contents".format(service_id)
|
|
|
|
self.post(
|
|
url,
|
|
{
|
|
"templates": list(template_ids),
|
|
"folders": list(folder_ids),
|
|
},
|
|
)
|
|
|
|
if template_ids:
|
|
redis_client.delete(
|
|
*(
|
|
f"service-{service_id}-template-{id}-version-None"
|
|
for id in template_ids
|
|
)
|
|
)
|
|
|
|
@cache.delete("service-{service_id}-template-folders")
|
|
def update_template_folder(
|
|
self, service_id, template_folder_id, name, users_with_permission=None
|
|
):
|
|
data = {"name": name}
|
|
if users_with_permission:
|
|
data["users_with_permission"] = users_with_permission
|
|
self.post(
|
|
"/service/{}/template-folder/{}".format(service_id, template_folder_id),
|
|
data,
|
|
)
|
|
|
|
@cache.delete("service-{service_id}-template-folders")
|
|
def delete_template_folder(self, service_id, template_folder_id):
|
|
self.delete(
|
|
"/service/{}/template-folder/{}".format(service_id, template_folder_id), {}
|
|
)
|
|
|
|
|
|
template_folder_api_client = TemplateFolderAPIClient()
|