36 lines
1.0 KiB
TypeScript
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;
|