I did two days work to run laravel-websockets on my server. It will be nice to share with you.
Laravel WebSockets can be installed via composer:
| const openCartBtn = document.querySelector(".open-cart"); | |
| const closeCartBtn = document.querySelector(".close-cart"); | |
| const clearCartBtn = document.querySelector(".clear-cart"); | |
| const cartDOM = document.querySelector(".cart"); | |
| const cartOverlay = document.querySelector(".cart-overlay"); | |
| const cartItems = document.querySelector(".cart-items"); | |
| const cartTotal = document.querySelector(".cart-total"); | |
| const checkoutTotal = document.querySelector(".checkout-total"); | |
| const itemTotal = document.querySelector(".item-total"); | |
| const cartContent = document.querySelector(".cart-content"); |
| import { AccountsClient } from '@accounts/client'; | |
| import { LoginResult, CreateUser } from '@accounts/types'; | |
| import { AccountsClientPasswordOptions } from './types'; | |
| export declare class AccountsClientPassword { | |
| private client; | |
| private options; | |
| constructor(client: AccountsClient, options?: AccountsClientPasswordOptions); | |
| /** | |
| * Create a new user. | |
| */ |
| import { AccountsClient } from '@accounts/client'; | |
| import { LoginResult, CreateUser } from '@accounts/types'; | |
| import { AccountsClientPasswordOptions } from './types'; | |
| export declare class AccountsClientPassword { | |
| private client; | |
| private options; | |
| constructor(client: AccountsClient, options?: AccountsClientPasswordOptions); | |
| /** | |
| * Create a new user. | |
| */ |
| import { Injectable, OnInit } from '@angular/core'; | |
| import { AccountsClient } from '@accounts/client'; | |
| @Injectable({ | |
| providedIn: 'root' | |
| }) | |
| export class LoginService implements OnInit { | |
| public userLoginStatus = 'defaultLoginData'; |
| import 'reflect-metadata'; | |
| import { MongoClient } from 'mongodb'; | |
| import { AccountsServer } from '@accounts/server'; | |
| import { AccountsPassword } from '@accounts/password'; | |
| import AccountsMongoDB from '@accounts/mongo'; | |
| import { ApolloServer, attachDirectiveResolvers } from 'apollo-server'; | |
| import { AppModule } from '@modules/app/app.module'; | |
| import * as dotenv from "dotenv"; | |
| dotenv.config(); |
| import { QueryResolvers } from "@models"; | |
| import { UsersProvider } from "../providers/users.provider"; | |
| export const Query: QueryResolvers = { | |
| allUsers: (root, args, { injector }) => injector.get(UsersProvider).getAllUsers(), | |
| userById: (_, { id }, { injector }) => injector.get(UsersProvider).getUserById(id), | |
| userByUsername: (_, { username }, { injector }) => injector.get(UsersProvider).getUserByUsername(username), | |
| getUserByToken: (_, { id }, { injector }) => injector.get(UsersProvider).getUserByToken(id) | |
| } |
| import { Resolver, Query, Ctx, Mutation, Arg, FieldResolver, Root } from "type-graphql"; | |
| import { User, RegisterInput } from '../entities/User'; | |
| import * as crypto from "crypto-js"; | |
| import { File } from "../entities/File"; | |
| import { GraphQLUpload } from 'graphql-upload'; | |
| import { createWriteStream } from "fs"; | |
| @Resolver(User) | |
| export class UserResolver { |
| import { Resolver, Query, Ctx, Mutation, Arg, FieldResolver, Root } from 'type-graphql'; | |
| import { User, CreateUserInput } from '../entities/User'; | |
| import * as crypto from 'crypto-js'; | |
| import { File } from '../entities/File'; | |
| import { GraphQLUpload } from 'graphql-upload'; | |
| import { createWriteStream } from 'fs'; | |
| import { Like, getRepository } from 'typeorm'; | |
| @Resolver(User) | |
| export class UserResolver { |
| import { Resolver, Query, Args, Arg, Mutation } from "type-graphql"; | |
| import { Book, BookFilter, BooksFilter, CreateBookInput } from './book.entity'; | |
| import { Like } from 'typeorm'; | |
| @Resolver(Book) | |
| export class BookResolver { | |
| @Query(returns => [Book]) | |
| async allBooks( | |
| @Args() { title, skip, take }: BooksFilter |