Skip to content

Instantly share code, notes, and snippets.

View knrt10's full-sized avatar
😾

Kautilya Tripathi knrt10

😾
View GitHub Profile
@knrt10
knrt10 / userLoginSchema.ts
Created December 27, 2018 06:22
This is schema for user logging
import { GraphQLInputObjectType, GraphQLString } from "graphql";
// User input is getting input from user
const UserInput = new GraphQLInputObjectType({
name: "UserInputLogin",
fields: {
username: { type: GraphQLString },
password: { type: GraphQLString },
},
});
@knrt10
knrt10 / userRegisterSchema.ts
Created December 27, 2018 06:24
Schema for registering user to db
import { GraphQLBoolean, GraphQLID, GraphQLInputObjectType, GraphQLInt, GraphQLNonNull, GraphQLObjectType, GraphQLString } from "graphql";
// User type
const userType = new GraphQLObjectType({
name: "User",
fields: {
id: { type: GraphQLID },
username: { type: GraphQLString },
name: { type: GraphQLString },
password: { type: GraphQLString },
@knrt10
knrt10 / userSchema.ts
Created December 27, 2018 06:35
Mongoose model for our DB
import bcrypt = require("bcrypt-nodejs");
import { Schema } from "mongoose";
import mongoose = require("mongoose");
mongoose.Promise = global.Promise;
/**
* This is Schema for User
* @constant {UserSchema}
*/
@knrt10
knrt10 / response.ts
Created December 27, 2018 06:39
A model for our response
export class Response {
public code: number;
public message: string;
public data: any;
constructor(code: number, message: string, data: any) {
this.code = code;
this.message = message;
this.data = data;
}
}
@knrt10
knrt10 / complete.ts
Created December 27, 2018 06:41
Sending response on completing the promise
import { Response } from "../models";
export function completeRequest(promise: Promise<Response>): any {
const res = promise.then((response) => {
const finallResponse = {
code: response.code,
message: response.message,
data: response.data,
};
return finallResponse;
@knrt10
knrt10 / userInterface.ts
Created December 27, 2018 06:44
An interface for user
import {Document} from "mongoose";
/**
* This is interface for user
* @interface
* @extends {Document}
*/
export interface IUser extends Document {
// tslint:disable-next-line:semicolon
username: string,
@knrt10
knrt10 / user.ts
Created December 27, 2018 06:46
User Routes
import jwt = require("jsonwebtoken");
import { model } from "mongoose";
import { completeRequest } from "../functions/complete";
import { IUser } from "../interfaces";
import { Response } from "../models";
import { UserSchema } from "../schemas";
import { Config } from "../shared";
const User = model("User", UserSchema);
@knrt10
knrt10 / registerUserQueries.ts
Last active December 27, 2018 19:19
Mutation Queries to register User
const query = `mutation registerUser($input: UserInputRegister) {
registerUser(input: $input) {
code
message
data {
token
success
user {
id
createdAt
@knrt10
knrt10 / loginUserQueries.ts
Created December 27, 2018 06:51
Login user in queries
const query = `query loginUser($input: UserInputLogin) {
loginUser(input: $input) {
code,
message,
data {
success
user {
id
name
username
@knrt10
knrt10 / thirduser-test-spec.ts
Created December 27, 2018 07:00
New changes to test
import chai = require("chai");
import chaiAsPromised = require("chai-as-promised");
import chaiHttp = require("chai-http");
import { suite, test } from "mocha-typescript";
import { model } from "mongoose";
import sinon = require("sinon");
import { Response } from "../models";
import { UserSchema } from "../schemas";
import { TodoApp } from "../server";
import { Config } from "../shared";