mirror of https://github.com/vector-im/riot-web
				
				
				
			Support avatar_url in the scalar client API (#8550)
* Support avatar_url in the scalar client API Signed-off-by: Oliver Sand <oliver.sand@nordeck.net> * Fix return type * Remove automatic upload * Remove return type * Fix indentionpull/28788/head^2
							parent
							
								
									efc36acf93
								
							
						
					
					
						commit
						f7ba3f07cd
					
				|  | @ -148,6 +148,7 @@ Request: | |||
|    can configure/lay out the widget in different ways. All widgets must have a type. | ||||
|  - `name` (String) is an optional human-readable string about the widget. | ||||
|  - `data` (Object) is some optional data about the widget, and can contain arbitrary key/value pairs. | ||||
|  - `avatar_url` (String) is some optional mxc: URI pointing to the avatar of the widget. | ||||
| Response: | ||||
| { | ||||
|     success: true | ||||
|  | @ -319,6 +320,7 @@ function setWidget(event: MessageEvent<any>, roomId: string): void { | |||
|     const widgetUrl = event.data.url; | ||||
|     const widgetName = event.data.name; // optional
 | ||||
|     const widgetData = event.data.data; // optional
 | ||||
|     const widgetAvatarUrl = event.data.avatar_url; // optional
 | ||||
|     const userWidget = event.data.userWidget; | ||||
| 
 | ||||
|     // both adding/removing widgets need these checks
 | ||||
|  | @ -337,6 +339,14 @@ function setWidget(event: MessageEvent<any>, roomId: string): void { | |||
|             sendError(event, _t("Unable to create widget."), new Error("Optional field 'data' must be an Object.")); | ||||
|             return; | ||||
|         } | ||||
|         if (widgetAvatarUrl !== undefined && typeof widgetAvatarUrl !== 'string') { | ||||
|             sendError( | ||||
|                 event, | ||||
|                 _t("Unable to create widget."), | ||||
|                 new Error("Optional field 'avatar_url' must be a string."), | ||||
|             ); | ||||
|             return; | ||||
|         } | ||||
|         if (typeof widgetType !== 'string') { | ||||
|             sendError(event, _t("Unable to create widget."), new Error("Field 'type' must be a string.")); | ||||
|             return; | ||||
|  | @ -364,13 +374,14 @@ function setWidget(event: MessageEvent<any>, roomId: string): void { | |||
|         if (!roomId) { | ||||
|             sendError(event, _t('Missing roomId.'), null); | ||||
|         } | ||||
|         WidgetUtils.setRoomWidget(roomId, widgetId, widgetType, widgetUrl, widgetName, widgetData).then(() => { | ||||
|             sendResponse(event, { | ||||
|                 success: true, | ||||
|         WidgetUtils.setRoomWidget(roomId, widgetId, widgetType, widgetUrl, widgetName, widgetData, widgetAvatarUrl) | ||||
|             .then(() => { | ||||
|                 sendResponse(event, { | ||||
|                     success: true, | ||||
|                 }); | ||||
|             }, (err) => { | ||||
|                 sendError(event, _t('Failed to send request.'), err); | ||||
|             }); | ||||
|         }, (err) => { | ||||
|             sendError(event, _t('Failed to send request.'), err); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -286,6 +286,7 @@ export default class WidgetUtils { | |||
|         widgetUrl?: string, | ||||
|         widgetName?: string, | ||||
|         widgetData?: object, | ||||
|         widgetAvatarUrl?: string, | ||||
|     ) { | ||||
|         let content; | ||||
| 
 | ||||
|  | @ -299,6 +300,7 @@ export default class WidgetUtils { | |||
|                 url: widgetUrl, | ||||
|                 name: widgetName, | ||||
|                 data: widgetData, | ||||
|                 avatar_url: widgetAvatarUrl, | ||||
|             }; | ||||
|         } else { | ||||
|             content = {}; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Oliver Sand
						Oliver Sand