Wordpress-plugin-Gutenberg-.../src/mobilizon-helper.js

69 lines
1.8 KiB
JavaScript

import { request } from 'graphql-request';
// export function addHttpsProtocolIfNeeded (baseURL) {
// if (!baseURL.startsWith("https://")) {
// var baseURL = "https://" + baseURL;
// }
// return baseURL
// }
export async function isMobilizonInstance(baseURL) {
try {
let response = await fetch(baseURL + '/.well-known/nodeinfo/2.1');
if (response.ok) {
let json = await response.json();
if (json.software.name === "Mobilizon") {
return true;
}
else {
return false;
}
}
} catch (error) {
return false;
}
}
export async function groupExists(baseURL, groupName) {
const url = baseURL + "/api";
const query = `
query ($groupName: String!) {
group(preferredUsername: $groupName) {
type
}
}
`;
try {
await request(url, query, { groupName });
// if the group is not found the response looks like:
// {
// "data": {
// "group": null
// },
// "errors": [
// {
// "code": "group_not_found",
// "field": null,
// "locations": [
// {
// "column": 3,
// "line": 7
// }
// ],
// "message": "Group not found",
// "path": [
// "group"
// ],
// "status_code": 404
// }
// ]
// }
//
// So if we didn't catch an error, true can be returned
return true;
} catch (error) {
return false;
}
}