| 
									
										
										
										
											2023-11-06 19:36:16 +08:00
										 |  |  | from flask_restful import fields | 
					
						
							| 
									
										
										
										
											2024-02-06 13:21:13 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-06 19:36:16 +08:00
										 |  |  | from libs.helper import TimestampField | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HiddenAPIKey(fields.Raw): | 
					
						
							|  |  |  |     def output(self, key, obj): | 
					
						
							| 
									
										
										
										
											2023-11-06 23:07:30 +08:00
										 |  |  |         api_key = obj.api_key | 
					
						
							|  |  |  |         # If the length of the api_key is less than 8 characters, show the first and last characters | 
					
						
							|  |  |  |         if len(api_key) <= 8: | 
					
						
							|  |  |  |             return api_key[0] + '******' + api_key[-1] | 
					
						
							|  |  |  |         # If the api_key is greater than 8 characters, show the first three and the last three characters | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return api_key[:3] + '******' + api_key[-3:] | 
					
						
							| 
									
										
										
										
											2023-11-06 19:36:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | api_based_extension_fields = { | 
					
						
							|  |  |  |     'id': fields.String, | 
					
						
							|  |  |  |     'name': fields.String, | 
					
						
							|  |  |  |     'api_endpoint': fields.String, | 
					
						
							|  |  |  |     'api_key': HiddenAPIKey, | 
					
						
							|  |  |  |     'created_at': TimestampField | 
					
						
							|  |  |  | } |