wag-managment-api-service-l.../Events/AllEvents/events/account/info.py

259 lines
9.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from Events.Engine.abstract_class import PageInfo
from .bases import Components, KeyTypes, ValidationRequest, icon, cluster_name
from .bases import KeyValidations, KeyBases, PageBases, KeyURLs
from .account_records import (
AccountRecordsUpdateEventMethods,
AccountRecordsCreateEventMethods,
AccountRecordsListEventMethods,
)
from .lang_models import (
account_language_list_models_as_dict,
account_language_create_form_models_as_dict,
account_language_update_form_models_as_dict,
account_language_create_link_models_as_dict,
account_language_update_link_models_as_dict,
)
RedisValidation = dict(
NAME="AccountCluster",
PREFIX="/accounts",
URL="/dashboard?site=AccountCluster",
ICON="Building",
INFO={
"en": {
"page": "Account Records for reaching user all types account information",
},
"tr": {
"page": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları",
},
},
SUB_COMPONENTS={
"/accounts/create": {
"SITE_URL": "/events/create?site=AccountCluster",
"COMPONENT": "Link",
"PREFIX_URL": "/accounts/create",
"INFO": {
"en": {
"page": "Create Account Records",
"actions": "Actions",
"table": "Table",
},
"tr": {
"page": "Hesap Kayıdı Oluştur",
"actions": "Aksiyonlar",
"table": "Tablo",
},
},
"INSTRUCTIONS": None,
},
"/accounts/list": {
"SITE_URL": "/events/dashboard?site=AccountCluster",
"COMPONENT": "Table",
"PREFIX_URL": "/accounts/list",
"INFO": {
"en": { "page": "List Account Records" },
"tr": { "page": "Hesap Kayıtlarını Listele" },
},
"INSTRUCTIONS": {
"headers": {
"store": True,
"url": "/validations/header",
"data": {
"event_code": "/accounts/list",
"asked_field": "headers",
},
},
"data": {
"store": True,
"url": "/accounts/list",
"data": {
"page": 1,
"limit": 1,
"order_by": "uu_id",
"order_type": "desc",
"query": None,
},
},
},
},
},
)
class ClustersPageInfo:
# Cluster Page Infos that are available for the client
dashboard_page_info = PageInfo(
name=f"{cluster_name}",
url=PageBases.DASHBOARD,
icon=icon,
info={
"en": {
"page": "Account Records for reaching user all types account information",
},
"tr": {
"page": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıtları",
},
},
sub_components={
str(KeyBases.create_key): {
"SITE_URL": PageBases.CREATE,
"COMPONENT": Components.LINK,
"PREFIX_URL": KeyBases.create_key,
"ENDPOINTS": AccountRecordsCreateEventMethods.retrieve_all_event_keys(),
"LANGUAGE_MODELS": account_language_create_link_models_as_dict,
"INSTRUCTIONS": {},
},
str(KeyBases.update_key): {
"SITE_URL": PageBases.UPDATE,
"COMPONENT": Components.LINK,
"PREFIX_URL": KeyBases.update_key,
"ENDPOINTS": AccountRecordsUpdateEventMethods.retrieve_all_event_keys(),
"LANGUAGE_MODELS": account_language_update_link_models_as_dict,
"INSTRUCTIONS": {},
},
str(KeyBases.list_key): {
"SITE_URL": PageBases.DASHBOARD,
"COMPONENT": Components.TABLE,
"PREFIX_URL": KeyBases.list_key,
"INFO": {
"en": {"page": "List Account Records"},
"tr": {"page": "Hesap Kayıtlarını Listele"},
},
"ENDPOINTS": AccountRecordsListEventMethods.retrieve_all_event_keys(),
"LANGUAGE_MODELS": account_language_list_models_as_dict,
"INSTRUCTIONS": {
"HEADERS": {
"store": True,
"url": KeyURLs.validations,
"data": ValidationRequest(
event_code=f"{KeyBases.list_key}",
asked_field=KeyValidations.headers,
type=KeyTypes.RESPONSE
).dump(),
},
"DATA": {
"store": True,
"url": f"{KeyBases.list_key}",
"params": None,
"data": dict(page=1, limit=1, order_by="uu_id", order_type="desc", query=None),
},
},
},
},
)
create_page_info = PageInfo(
name=f"{cluster_name}",
url=PageBases.CREATE,
icon=icon,
info={
"en": {
"page": "Create Account Records for reaching user all types account information",
},
"tr": {
"page": "Kullanıcı tüm hesap bilgilerine ulaşmak için Hesap Kayıt Oluştur",
},
},
sub_components={
str(KeyBases.create_key): {
"SITE_URL": PageBases.CREATE,
"COMPONENT": Components.FORM,
"PREFIX_URL": KeyBases.create_key,
"INFO": {
"en": {"page": "Create Account Records", "button": "Create"},
"tr": {"page": "Hesap Kayıtlarını Oluştur", "button": "Oluştur"},
},
"ENDPOINTS": AccountRecordsCreateEventMethods.retrieve_all_event_keys(),
"LANGUAGE_MODELS": account_language_create_form_models_as_dict,
"INSTRUCTIONS": {
"VALIDATION": {
"store": True,
"url": KeyURLs.validations,
"data": ValidationRequest(
event_code=f"{KeyBases.create_key}",
asked_field=KeyValidations.validation,
type=KeyTypes.REQUEST
).dump(),
},
"HEADERS": {
"store": True,
"url": KeyURLs.validations,
"data": ValidationRequest(
event_code=f"{KeyBases.create_key}",
asked_field=KeyValidations.headers,
type=KeyTypes.REQUEST
).dump(),
},
},
},
},
)
update_page_info = PageInfo(
name=f"{cluster_name}",
url=PageBases.UPDATE,
icon=icon,
info={
"en": {
"page": "Update Account Records via all types account information",
},
"tr": {
"page": "Tüm hesap bilgileri aracılığıyla Hesap Kayıtlarını Güncelle",
},
},
sub_components={
str(KeyBases.update_key): {
"SITE_URL": PageBases.UPDATE,
"COMPONENT": Components.FORM,
"PREFIX_URL": KeyBases.update_key,
"INFO": {
"en": {"page": "Update Account Records", "button": "Update"},
"tr": {"page": "Hesap Kayıtlarını Güncelle", "button": "Güncelle"},
},
"ENDPOINTS": AccountRecordsUpdateEventMethods.retrieve_all_event_keys(),
"LANGUAGE_MODELS": account_language_update_form_models_as_dict,
"INSTRUCTIONS": {
"VALIDATION": {
"store": True,
"url": KeyURLs.validations,
"data": ValidationRequest(
event_code=f"{KeyBases.update_key}",
asked_field=KeyValidations.validation,
type=KeyTypes.REQUEST
).dump(),
},
"HEADERS": {
"store": True,
"url": KeyURLs.validations,
"data": ValidationRequest(
event_code=f"{KeyBases.update_key}",
asked_field=KeyValidations.headers,
type=KeyTypes.REQUEST
).dump(),
},
"DATA": {
"store": True,
"url": f"{KeyBases.list_key}",
"params": {"uu_id": "SomeUUID"},
"data": dict(page=1, size=1, limit=1, order_by="uu_id", order_type="desc", query={"uu_id": "SomeUUID"}),
},
},
},
},
)
# Page Variations of the cluster
page_infos = {
ClustersPageInfo.dashboard_page_info.URL: ClustersPageInfo.dashboard_page_info,
ClustersPageInfo.create_page_info.URL: ClustersPageInfo.create_page_info,
ClustersPageInfo.update_page_info.URL: ClustersPageInfo.update_page_info,
}
# Check if all the page info is implemented in the mappings
for t in [x for k, x in PageBases.__dict__.items() if not str(k).startswith("__")]:
if t not in list(dict(page_infos).keys()):
raise NotImplementedError(f"Page Info of : {t} is not implemented in mappings")