@crazyrabbitltc/railway-mcp
Version:
Railway MCP Server - 146+ tools with 100% Railway API coverage, comprehensive MCP testing framework, and real infrastructure management through AI assistants. Enhanced version with enterprise features, based on original work by Jason Tan.
98 lines (97 loc) • 2.71 kB
JavaScript
export class PluginRepository {
client;
constructor(client) {
this.client = client;
}
async create(input) {
const query = `
mutation pluginCreate($input: PluginCreateInput!) {
pluginCreate(input: $input) {
id
name
friendlyName
status
logsEnabled
createdAt
}
}
`;
const data = await this.client.request(query, { input });
return data.pluginCreate;
}
async get(id) {
const query = `
query plugin($id: String!) {
plugin(id: $id) {
id
name
friendlyName
status
logsEnabled
migrationDatabaseServiceId
createdAt
deletedAt
deprecatedAt
}
}
`;
const data = await this.client.request(query, { id });
return data.plugin;
}
async update(id, input) {
const query = `
mutation pluginUpdate($id: String!, $input: PluginUpdateInput!) {
pluginUpdate(id: $id, input: $input) {
id
name
friendlyName
status
logsEnabled
}
}
`;
const data = await this.client.request(query, { id, input });
return data.pluginUpdate;
}
async delete(id, environmentId) {
const query = `
mutation pluginDelete($id: String!, $environmentId: String) {
pluginDelete(id: $id, environmentId: $environmentId)
}
`;
const data = await this.client.request(query, { id, environmentId });
return data.pluginDelete;
}
async restart(id, environmentId) {
const query = `
mutation pluginRestart($id: String!, $input: PluginRestartInput!) {
pluginRestart(id: $id, input: $input) {
id
name
friendlyName
status
}
}
`;
const data = await this.client.request(query, { id, input: { environmentId } });
return data.pluginRestart;
}
async start(id, environmentId) {
const query = `
mutation pluginStart($id: String!, $input: PluginRestartInput!) {
pluginStart(id: $id, input: $input)
}
`;
const data = await this.client.request(query, { id, input: { environmentId } });
return data.pluginStart;
}
async resetCredentials(id) {
const query = `
mutation pluginResetCredentials($id: String!, $input: ResetPluginCredentialsInput!) {
pluginResetCredentials(id: $id, input: $input)
}
`;
const data = await this.client.request(query, { id, input: {} });
return data.pluginResetCredentials;
}
}