Change apiRequest to accept both params and data (#30818)
				
					
				
			This commit is contained in:
		
							parent
							
								
									309274839d
								
							
						
					
					
						commit
						547e97945d
					
				| @ -59,16 +59,49 @@ export default function api(withAuthorization = true) { | |||||||
|   }); |   }); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | type RequestParamsOrData = Record<string, unknown>; | ||||||
|  | 
 | ||||||
| export async function apiRequest<ApiResponse = unknown>( | export async function apiRequest<ApiResponse = unknown>( | ||||||
|   method: Method, |   method: Method, | ||||||
|   url: string, |   url: string, | ||||||
|   params?: Record<string, unknown>, |   args: { | ||||||
|  |     params?: RequestParamsOrData; | ||||||
|  |     data?: RequestParamsOrData; | ||||||
|  |   } = {}, | ||||||
| ) { | ) { | ||||||
|   const { data } = await api().request<ApiResponse>({ |   const { data } = await api().request<ApiResponse>({ | ||||||
|     method, |     method, | ||||||
|     url: '/api/' + url, |     url: '/api/' + url, | ||||||
|     data: params, |     ...args, | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   return data; |   return data; | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | export async function apiRequestGet<ApiResponse = unknown>( | ||||||
|  |   url: string, | ||||||
|  |   params?: RequestParamsOrData, | ||||||
|  | ) { | ||||||
|  |   return apiRequest<ApiResponse>('GET', url, { params }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export async function apiRequestPost<ApiResponse = unknown>( | ||||||
|  |   url: string, | ||||||
|  |   data?: RequestParamsOrData, | ||||||
|  | ) { | ||||||
|  |   return apiRequest<ApiResponse>('POST', url, { data }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export async function apiRequestPut<ApiResponse = unknown>( | ||||||
|  |   url: string, | ||||||
|  |   data?: RequestParamsOrData, | ||||||
|  | ) { | ||||||
|  |   return apiRequest<ApiResponse>('PUT', url, { data }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export async function apiRequestDelete<ApiResponse = unknown>( | ||||||
|  |   url: string, | ||||||
|  |   params?: RequestParamsOrData, | ||||||
|  | ) { | ||||||
|  |   return apiRequest<ApiResponse>('DELETE', url, { params }); | ||||||
|  | } | ||||||
|  | |||||||
| @ -1,7 +1,9 @@ | |||||||
| import { apiRequest } from 'mastodon/api'; | import { apiRequestPost } from 'mastodon/api'; | ||||||
| import type { ApiRelationshipJSON } from 'mastodon/api_types/relationships'; | import type { ApiRelationshipJSON } from 'mastodon/api_types/relationships'; | ||||||
| 
 | 
 | ||||||
| export const apiSubmitAccountNote = (id: string, value: string) => | export const apiSubmitAccountNote = (id: string, value: string) => | ||||||
|   apiRequest<ApiRelationshipJSON>('post', `v1/accounts/${id}/note`, { |   apiRequestPost<ApiRelationshipJSON>(`v1/accounts/${id}/note`, { | ||||||
|  |     data: { | ||||||
|       comment: value, |       comment: value, | ||||||
|  |     }, | ||||||
|   }); |   }); | ||||||
|  | |||||||
| @ -1,10 +1,12 @@ | |||||||
| import { apiRequest } from 'mastodon/api'; | import { apiRequestPost } from 'mastodon/api'; | ||||||
| import type { Status, StatusVisibility } from 'mastodon/models/status'; | import type { Status, StatusVisibility } from 'mastodon/models/status'; | ||||||
| 
 | 
 | ||||||
| export const apiReblog = (statusId: string, visibility: StatusVisibility) => | export const apiReblog = (statusId: string, visibility: StatusVisibility) => | ||||||
|   apiRequest<{ reblog: Status }>('post', `v1/statuses/${statusId}/reblog`, { |   apiRequestPost<{ reblog: Status }>(`v1/statuses/${statusId}/reblog`, { | ||||||
|  |     data: { | ||||||
|       visibility, |       visibility, | ||||||
|  |     }, | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
| export const apiUnreblog = (statusId: string) => | export const apiUnreblog = (statusId: string) => | ||||||
|   apiRequest<Status>('post', `v1/statuses/${statusId}/unreblog`); |   apiRequestPost<Status>(`v1/statuses/${statusId}/unreblog`); | ||||||
|  | |||||||
| @ -1,10 +1,12 @@ | |||||||
| import { apiRequest } from 'mastodon/api'; | import { apiRequestGet, apiRequestPut } from 'mastodon/api'; | ||||||
| import type { NotificationPolicyJSON } from 'mastodon/api_types/notification_policies'; | import type { NotificationPolicyJSON } from 'mastodon/api_types/notification_policies'; | ||||||
| 
 | 
 | ||||||
| export const apiGetNotificationPolicy = () => | export const apiGetNotificationPolicy = () => | ||||||
|   apiRequest<NotificationPolicyJSON>('GET', '/v1/notifications/policy'); |   apiRequestGet<NotificationPolicyJSON>('/v1/notifications/policy'); | ||||||
| 
 | 
 | ||||||
| export const apiUpdateNotificationsPolicy = ( | export const apiUpdateNotificationsPolicy = ( | ||||||
|   policy: Partial<NotificationPolicyJSON>, |   policy: Partial<NotificationPolicyJSON>, | ||||||
| ) => | ) => | ||||||
|   apiRequest<NotificationPolicyJSON>('PUT', '/v1/notifications/policy', policy); |   apiRequestPut<NotificationPolicyJSON>('/v1/notifications/policy', { | ||||||
|  |     data: policy, | ||||||
|  |   }); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user