Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/sendgrid/helpers/mail/ganalytics.py: 41%

63 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2023-07-17 14:22 -0600

1class Ganalytics(object): 

2 """Allows you to enable tracking provided by Google Analytics.""" 

3 

4 def __init__(self, 

5 enable=None, 

6 utm_source=None, 

7 utm_medium=None, 

8 utm_term=None, 

9 utm_content=None, 

10 utm_campaign=None): 

11 """Create a GAnalytics to enable, customize Google Analytics tracking. 

12 

13 :param enable: If this setting is enabled. 

14 :type enable: boolean, optional 

15 :param utm_source: Name of the referrer source. 

16 :type utm_source: string, optional 

17 :param utm_medium: Name of the marketing medium (e.g. "Email"). 

18 :type utm_medium: string, optional 

19 :param utm_term: Used to identify paid keywords. 

20 :type utm_term: string, optional 

21 :param utm_content: Used to differentiate your campaign from ads. 

22 :type utm_content: string, optional 

23 :param utm_campaign: The name of the campaign. 

24 :type utm_campaign: string, optional 

25 """ 

26 self._enable = None 

27 self._utm_source = None 

28 self._utm_medium = None 

29 self._utm_term = None 

30 self._utm_content = None 

31 self._utm_campaign = None 

32 

33 self.__set_field("enable", enable) 

34 self.__set_field("utm_source", utm_source) 

35 self.__set_field("utm_medium", utm_medium) 

36 self.__set_field("utm_term", utm_term) 

37 self.__set_field("utm_content", utm_content) 

38 self.__set_field("utm_campaign", utm_campaign) 

39 

40 def __set_field(self, field, value): 

41 """ Sets a field to the provided value if value is not None 

42 

43 :param field: Name of the field 

44 :type field: string 

45 :param value: Value to be set, ignored if None 

46 :type value: Any 

47 """ 

48 if value is not None: 

49 setattr(self, field, value) 

50 

51 @property 

52 def enable(self): 

53 """Indicates if this setting is enabled. 

54 

55 :rtype: boolean 

56 """ 

57 return self._enable 

58 

59 @enable.setter 

60 def enable(self, value): 

61 """Indicates if this setting is enabled. 

62 

63 :param value: Indicates if this setting is enabled. 

64 :type value: boolean 

65 """ 

66 self._enable = value 

67 

68 @property 

69 def utm_source(self): 

70 """Name of the referrer source. 

71 e.g. Google, SomeDomain.com, or Marketing Email 

72 

73 :rtype: string 

74 """ 

75 return self._utm_source 

76 

77 @utm_source.setter 

78 def utm_source(self, value): 

79 """Name of the referrer source. 

80 e.g. Google, SomeDomain.com, or Marketing Email 

81 

82 :param value: Name of the referrer source. 

83 e.g. Google, SomeDomain.com, or Marketing Email 

84 :type value: string 

85 """ 

86 self._utm_source = value 

87 

88 @property 

89 def utm_medium(self): 

90 """Name of the marketing medium (e.g. Email). 

91 

92 :rtype: string 

93 """ 

94 return self._utm_medium 

95 

96 @utm_medium.setter 

97 def utm_medium(self, value): 

98 """Name of the marketing medium (e.g. Email). 

99 

100 :param value: Name of the marketing medium (e.g. Email). 

101 :type value: string 

102 """ 

103 self._utm_medium = value 

104 

105 @property 

106 def utm_term(self): 

107 """Used to identify any paid keywords. 

108 

109 :rtype: string 

110 """ 

111 return self._utm_term 

112 

113 @utm_term.setter 

114 def utm_term(self, value): 

115 """Used to identify any paid keywords. 

116 

117 :param value: Used to identify any paid keywords. 

118 :type value: string 

119 """ 

120 self._utm_term = value 

121 

122 @property 

123 def utm_content(self): 

124 """Used to differentiate your campaign from advertisements. 

125 

126 :rtype: string 

127 """ 

128 return self._utm_content 

129 

130 @utm_content.setter 

131 def utm_content(self, value): 

132 """Used to differentiate your campaign from advertisements. 

133 

134 :param value: Used to differentiate your campaign from advertisements. 

135 :type value: string 

136 """ 

137 self._utm_content = value 

138 

139 @property 

140 def utm_campaign(self): 

141 """The name of the campaign. 

142 

143 :rtype: string 

144 """ 

145 return self._utm_campaign 

146 

147 @utm_campaign.setter 

148 def utm_campaign(self, value): 

149 """The name of the campaign. 

150 

151 :param value: The name of the campaign. 

152 :type value: string 

153 """ 

154 self._utm_campaign = value 

155 

156 def get(self): 

157 """ 

158 Get a JSON-ready representation of this Ganalytics. 

159 

160 :returns: This Ganalytics, ready for use in a request body. 

161 :rtype: dict 

162 """ 

163 keys = ["enable", "utm_source", "utm_medium", "utm_term", 

164 "utm_content", "utm_campaign"] 

165 

166 ganalytics = {} 

167 

168 for key in keys: 

169 value = getattr(self, key, None) 

170 if value is not None: 

171 if isinstance(value, bool) or isinstance(value, str): 

172 ganalytics[key] = value 

173 else: 

174 ganalytics[key] = value.get() 

175 

176 return ganalytics