Coverage for gws-app/gws/plugin/account/admin_action.py: 0%

52 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1"""Account admin action.""" 

2 

3from typing import Optional, cast 

4 

5import gws 

6import gws.config.util 

7import gws.base.action 

8import gws.lib.mime 

9import gws.base.edit.api as api 

10 

11from . import helper 

12 

13gws.ext.new.action('accountadmin') 

14 

15 

16class Config(gws.base.action.Config): 

17 """Account Admin action. (added in 8.1)""" 

18 

19 models: Optional[list[gws.ext.config.model]] 

20 """Account data models.""" 

21 

22 

23class Props(gws.base.action.Props): 

24 pass 

25 

26 

27## 

28 

29 

30class ResetRequest(gws.Request): 

31 featureUid: str 

32 

33 

34class ResetResponse(gws.Response): 

35 feature: gws.FeatureProps 

36 

37 

38class Object(gws.base.action.Object): 

39 h: helper.Object 

40 

41 def configure(self): 

42 self.h = cast(helper.Object, self.root.app.helper('account')) 

43 

44 @gws.ext.command.api('accountadminGetModels') 

45 def api_get_models(self, req: gws.WebRequester, p: api.GetModelsRequest) -> api.GetModelsResponse: 

46 return self.h.get_models_response(req, p, self.h.get_models(req, p)) 

47 

48 @gws.ext.command.api('accountadminGetFeatures') 

49 def api_get_features(self, req: gws.WebRequester, p: api.GetFeaturesRequest) -> api.GetFeaturesResponse: 

50 return self.h.get_features_response(req, p, self.h.get_features(req, p)) 

51 

52 @gws.ext.command.api('accountadminGetRelatableFeatures') 

53 def api_get_relatable_features(self, req: gws.WebRequester, p: api.GetRelatableFeaturesRequest) -> api.GetRelatableFeaturesResponse: 

54 return self.h.get_relatable_features_response(req, p, self.h.get_relatable_features(req, p)) 

55 

56 @gws.ext.command.api('accountadminGetFeature') 

57 def api_get_feature(self, req: gws.WebRequester, p: api.GetFeatureRequest) -> api.GetFeatureResponse: 

58 return self.h.get_feature_response(req, p, self.h.get_feature(req, p)) 

59 

60 @gws.ext.command.api('accountadminInitFeature') 

61 def api_init_feature(self, req: gws.WebRequester, p: api.InitFeatureRequest) -> api.InitFeatureResponse: 

62 return self.h.init_feature_response(req, p, self.h.init_feature(req, p)) 

63 

64 @gws.ext.command.api('accountadminWriteFeature') 

65 def api_write_feature(self, req: gws.WebRequester, p: api.WriteFeatureRequest) -> api.WriteFeatureResponse: 

66 return self.h.write_feature_response(req, p, self.h.write_feature(req, p)) 

67 

68 @gws.ext.command.api('accountadminDeleteFeature') 

69 def api_delete_feature(self, req: gws.WebRequester, p: api.DeleteFeatureRequest) -> api.DeleteFeatureResponse: 

70 return self.h.delete_feature_response(req, p, self.h.delete_feature(req, p)) 

71 

72 @gws.ext.command.api('accountadminReset') 

73 def api_reset(self, req: gws.WebRequester, p: ResetRequest) -> ResetResponse: 

74 uid = p.featureUid 

75 account = self.h.get_account_by_id(uid) 

76 if not account: 

77 raise gws.NotFoundError() 

78 self.h.reset(account) 

79 

80 mc = self.h.model_context(req, p, gws.ModelOperation.read, gws.ModelReadTarget.editForm) 

81 fs = self.h.adminModel.get_features([self.h.get_uid(account)], mc) 

82 return ResetResponse(feature=self.h.feature_to_props(fs[0], mc))