feat: complete Epic 1 production foundation
This commit is contained in:
@@ -28,6 +28,14 @@ async function browserJson(page, method, urlPath, body, okStatuses = [200]) {
|
||||
request.headers['Content-Type'] = 'application/json';
|
||||
request.body = JSON.stringify(body);
|
||||
}
|
||||
if (!['GET', 'HEAD', 'OPTIONS'].includes(method.toUpperCase())) {
|
||||
let csrfToken = window.CrankAuth && window.CrankAuth.getCsrfToken();
|
||||
if (!csrfToken && window.CrankApi && window.CrankApi.refreshSessionCsrf) {
|
||||
const csrf = await window.CrankApi.refreshSessionCsrf();
|
||||
csrfToken = csrf && csrf.csrf_token;
|
||||
}
|
||||
if (csrfToken) request.headers['X-CSRF-Token'] = csrfToken;
|
||||
}
|
||||
|
||||
const result = await fetch(urlPath, request);
|
||||
const text = await result.text();
|
||||
@@ -66,11 +74,17 @@ async function getCurrentWorkspace(page) {
|
||||
}
|
||||
|
||||
async function createAgent(page, workspaceId, payload) {
|
||||
return browserJson(
|
||||
page,
|
||||
'POST',
|
||||
`/api/admin/workspaces/${encodeURIComponent(workspaceId)}/agents`,
|
||||
payload,
|
||||
return page.evaluate(
|
||||
async ({ workspaceId, payload }) => {
|
||||
var session = await window.CrankApi.getSession();
|
||||
if (!session.csrf_token) {
|
||||
var csrf = await window.CrankApi.refreshSessionCsrf();
|
||||
session.csrf_token = csrf.csrf_token;
|
||||
}
|
||||
window.CrankAuth.replaceSession(session);
|
||||
return window.CrankApi.createAgent(workspaceId, payload);
|
||||
},
|
||||
{ workspaceId, payload },
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user