Files
automatisch/packages/backend/src/graphql/mutations/create-connection.ts

36 lines
1.0 KiB
TypeScript

import { GraphQLString, GraphQLNonNull } from 'graphql';
import Connection from '../../models/connection';
import App from '../../models/app';
import connectionType from '../types/connection';
import twitterCredentialInputType from '../types/twitter-credential-input';
import RequestWithCurrentUser from '../../types/express/request-with-current-user';
type Params = {
key: string,
data: object
}
const createConnectionResolver = async (params: Params, req: RequestWithCurrentUser) => {
const app = App.findOneByKey(params.key);
const connection = await Connection.query().insert({
key: params.key,
data: params.data,
userId: req.currentUser.id
});
return {
...connection,
app,
};
}
const createConnection = {
type: connectionType,
args: {
key: { type: GraphQLNonNull(GraphQLString) },
data: { type: GraphQLNonNull(twitterCredentialInputType) }
},
resolve: (_: any, params: Params, req: RequestWithCurrentUser) => createConnectionResolver(params, req)
};
export default createConnection;