Merge pull request #872 from automatisch/primitive-custom-http-request
feat(http-request): introduce custom request action
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import defineAction from '../../../../helpers/define-action';
|
||||
|
||||
type TMethod = 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE';
|
||||
|
||||
export default defineAction({
|
||||
name: 'Custom Request',
|
||||
key: 'customRequest',
|
||||
description: 'Makes a custom HTTP request by providing raw details.',
|
||||
arguments: [
|
||||
{
|
||||
label: 'Method',
|
||||
key: 'method',
|
||||
type: 'dropdown' as const,
|
||||
required: true,
|
||||
description:
|
||||
`The HTTP method we'll use to perform the request.`,
|
||||
value: 'GET',
|
||||
options: [
|
||||
{ label: 'DELETE', value: 'DELETE' },
|
||||
{ label: 'GET', value: 'GET' },
|
||||
{ label: 'PATCH', value: 'PATCH' },
|
||||
{ label: 'POST', value: 'POST' },
|
||||
{ label: 'PUT', value: 'PUT' },
|
||||
]
|
||||
},
|
||||
{
|
||||
label: 'URL',
|
||||
key: 'url',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
description: 'Any URL with a querystring will be re-encoded properly.',
|
||||
variables: true,
|
||||
},
|
||||
{
|
||||
label: 'Data',
|
||||
key: 'data',
|
||||
type: 'string' as const,
|
||||
required: true,
|
||||
description: 'Place raw JSON data here.',
|
||||
variables: true,
|
||||
},
|
||||
],
|
||||
|
||||
async run($) {
|
||||
const method = $.step.parameters.method as TMethod;
|
||||
const data = $.step.parameters.data as string;
|
||||
const url = $.step.parameters.url as string;
|
||||
|
||||
const response = await $.http.request(
|
||||
{
|
||||
url,
|
||||
method,
|
||||
data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$.setActionItem({ raw: response.data });
|
||||
},
|
||||
});
|
3
packages/backend/src/apps/http-request/actions/index.ts
Normal file
3
packages/backend/src/apps/http-request/actions/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
import customRequest from './custom-request';
|
||||
|
||||
export default [customRequest];
|
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="100px" height="100px"><path d="M 37.09375 0.09375 C 36.316406 0.167969 35.652344 0.691406 35.398438 1.429688 C 35.140625 2.171875 35.339844 2.992188 35.90625 3.53125 L 42.375 10 L 2 10 C 1.9375 9.996094 1.875 9.996094 1.8125 10 C 0.707031 10.050781 -0.144531 10.988281 -0.09375 12.09375 C -0.0429688 13.199219 0.894531 14.050781 2 14 L 42.375 14 L 35.90625 20.46875 C 35.382813 20.96875 35.167969 21.710938 35.347656 22.414063 C 35.527344 23.113281 36.070313 23.664063 36.769531 23.851563 C 37.46875 24.039063 38.214844 23.832031 38.71875 23.3125 L 50.03125 12 L 38.71875 0.6875 C 38.296875 0.253906 37.699219 0.0351563 37.09375 0.09375 Z M 12.5 26.09375 C 12.046875 26.152344 11.628906 26.359375 11.3125 26.6875 L 0 38 L 11.3125 49.3125 C 11.816406 49.832031 12.5625 50.039063 13.261719 49.851563 C 13.960938 49.664063 14.503906 49.113281 14.683594 48.414063 C 14.863281 47.710938 14.648438 46.96875 14.125 46.46875 L 7.65625 40 L 48 40 C 48.722656 40.011719 49.390625 39.632813 49.753906 39.007813 C 50.121094 38.386719 50.121094 37.613281 49.753906 36.992188 C 49.390625 36.367188 48.722656 35.988281 48 36 L 7.65625 36 L 14.125 29.53125 C 14.753906 28.9375 14.929688 28.003906 14.558594 27.222656 C 14.1875 26.441406 13.359375 25.984375 12.5 26.09375 Z"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
0
packages/backend/src/apps/http-request/index.d.ts
vendored
Normal file
0
packages/backend/src/apps/http-request/index.d.ts
vendored
Normal file
14
packages/backend/src/apps/http-request/index.ts
Normal file
14
packages/backend/src/apps/http-request/index.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import defineApp from '../../helpers/define-app';
|
||||
import actions from './actions';
|
||||
|
||||
export default defineApp({
|
||||
name: 'HTTP Request',
|
||||
key: 'http-request',
|
||||
iconUrl: '{BASE_URL}/apps/http-request/assets/favicon.svg',
|
||||
authDocUrl: 'https://automatisch.io/docs/apps/http-request/connection',
|
||||
supportsConnections: false,
|
||||
baseUrl: '',
|
||||
apiBaseUrl: '',
|
||||
primaryColor: '000000',
|
||||
actions,
|
||||
});
|
@@ -78,6 +78,15 @@ export default defineConfig({
|
||||
{ text: 'Connection', link: '/apps/github/connection' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'HTTP Request',
|
||||
collapsible: true,
|
||||
collapsed: true,
|
||||
items: [
|
||||
{ text: 'Actions', link: '/apps/http-request/actions' },
|
||||
{ text: 'Connection', link: '/apps/http-request/connection' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Ntfy',
|
||||
collapsible: true,
|
||||
|
12
packages/docs/pages/apps/http-request/actions.md
Normal file
12
packages/docs/pages/apps/http-request/actions.md
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
favicon: /favicons/http-request.svg
|
||||
items:
|
||||
- name: Custom Request
|
||||
desc: Makes a custom HTTP request by providing raw details.
|
||||
---
|
||||
|
||||
<script setup>
|
||||
import CustomListing from '../../components/CustomListing.vue'
|
||||
</script>
|
||||
|
||||
<CustomListing />
|
3
packages/docs/pages/apps/http-request/connection.md
Normal file
3
packages/docs/pages/apps/http-request/connection.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# HTTP Request
|
||||
|
||||
HTTP Request is a built-in app shipped with Automatisch, and it doesn't need to talk with any other external service to run. So there are no additional steps to use the HTTP Request app.
|
@@ -11,9 +11,10 @@ Following integrations are currently supported by Automatisch.
|
||||
- [Discord](/apps/discord/actions)
|
||||
- [Flickr](/apps/flickr/triggers)
|
||||
- [Github](/apps/github/triggers)
|
||||
- [RSS](/apps/rss/triggers)
|
||||
- [HTTP Request](/apps/http-request/actions)
|
||||
- [Ntfy](/apps/ntfy/actions)
|
||||
- [OpenAI](/apps/openai/actions)
|
||||
- [RSS](/apps/rss/triggers)
|
||||
- [Salesforce](/apps/salesforce/triggers)
|
||||
- [Scheduler](/apps/scheduler/triggers)
|
||||
- [Slack](/apps/slack/actions)
|
||||
|
1
packages/docs/pages/public/favicons/http-request.svg
Normal file
1
packages/docs/pages/public/favicons/http-request.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="100px" height="100px"><path d="M 37.09375 0.09375 C 36.316406 0.167969 35.652344 0.691406 35.398438 1.429688 C 35.140625 2.171875 35.339844 2.992188 35.90625 3.53125 L 42.375 10 L 2 10 C 1.9375 9.996094 1.875 9.996094 1.8125 10 C 0.707031 10.050781 -0.144531 10.988281 -0.09375 12.09375 C -0.0429688 13.199219 0.894531 14.050781 2 14 L 42.375 14 L 35.90625 20.46875 C 35.382813 20.96875 35.167969 21.710938 35.347656 22.414063 C 35.527344 23.113281 36.070313 23.664063 36.769531 23.851563 C 37.46875 24.039063 38.214844 23.832031 38.71875 23.3125 L 50.03125 12 L 38.71875 0.6875 C 38.296875 0.253906 37.699219 0.0351563 37.09375 0.09375 Z M 12.5 26.09375 C 12.046875 26.152344 11.628906 26.359375 11.3125 26.6875 L 0 38 L 11.3125 49.3125 C 11.816406 49.832031 12.5625 50.039063 13.261719 49.851563 C 13.960938 49.664063 14.503906 49.113281 14.683594 48.414063 C 14.863281 47.710938 14.648438 46.96875 14.125 46.46875 L 7.65625 40 L 48 40 C 48.722656 40.011719 49.390625 39.632813 49.753906 39.007813 C 50.121094 38.386719 50.121094 37.613281 49.753906 36.992188 C 49.390625 36.367188 48.722656 35.988281 48 36 L 7.65625 36 L 14.125 29.53125 C 14.753906 28.9375 14.929688 28.003906 14.558594 27.222656 C 14.1875 26.441406 13.359375 25.984375 12.5 26.09375 Z"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
Reference in New Issue
Block a user