Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/spgo 14 #6

Merged
merged 18 commits into from
Oct 4, 2023
Merged
22 changes: 22 additions & 0 deletions .github/workflows/test.yml
Nitiwat-owen marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Account Service CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '18.x'
- name: Run Yarn
run: yarn
- name: Run tests
run: yarn test
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
proto:
protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto.cmd -I=./src/proto --ts_proto_out=./src/auth src/proto/auth.proto --ts_proto_opt=nestJs=true --ts_proto_opt=fileSuffix=.pb
protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto -I=./src/proto --ts_proto_out=./src/auth src/proto/auth.proto --ts_proto_opt=nestJs=true --ts_proto_opt=fileSuffix=.pb

server:
yarn start:dev
9 changes: 8 additions & 1 deletion src/auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Controller } from '@nestjs/common';
import { GrpcMethod } from '@nestjs/microservices';
import {
LoginRequest,
LoginResponse,
LoginResponse, LogoutRequest, LogoutResponse,
RegisterRequest,
RegisterResponse,
ValidateGoogleRequest,
Expand All @@ -24,6 +24,13 @@ export class AuthController {
return this.authService.register(request);
}


@GrpcMethod('AuthService', 'Logout')
logout(request: LogoutRequest): Promise<LogoutResponse> {
return this.authService.logout(request);
}


@GrpcMethod('AuthService', 'ValidateGoogle')
validateGoogle(
request: ValidateGoogleRequest,
Expand Down
78 changes: 28 additions & 50 deletions src/auth/auth.pb.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
/* eslint-disable */
import { GrpcMethod, GrpcStreamMethod } from '@nestjs/microservices';
import { Observable } from 'rxjs';
import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices";
import { Observable } from "rxjs";

export const protobufPackage = 'auth';
export const protobufPackage = "auth";

export interface RegisterRequest {
firstName: string;
Expand Down Expand Up @@ -52,6 +52,14 @@ export interface RefreshTokenResponse {
credential: Credential | undefined;
}

export interface LogoutRequest {
credential: Credential | undefined;
}

export interface LogoutResponse {
isDone: boolean;
}

export interface ValidateGoogleRequest {
user: GoogleUser | undefined;
}
Expand All @@ -60,7 +68,7 @@ export interface ValidateGoogleResponse {
credential: Credential | undefined;
}

export const AUTH_PACKAGE_NAME = 'auth';
export const AUTH_PACKAGE_NAME = "auth";

export interface AuthServiceClient {
login(request: LoginRequest): Observable<LoginResponse>;
Expand All @@ -69,70 +77,40 @@ export interface AuthServiceClient {

register(request: RegisterRequest): Observable<RegisterResponse>;

validateGoogle(
request: ValidateGoogleRequest,
): Observable<ValidateGoogleResponse>;
logout(request: LogoutRequest): Observable<LogoutResponse>;

validateGoogle(request: ValidateGoogleRequest): Observable<ValidateGoogleResponse>;
}

export interface AuthServiceController {
login(
request: LoginRequest,
): Promise<LoginResponse> | Observable<LoginResponse> | LoginResponse;
login(request: LoginRequest): Promise<LoginResponse> | Observable<LoginResponse> | LoginResponse;

refreshToken(
request: RefreshTokenRequest,
):
| Promise<RefreshTokenResponse>
| Observable<RefreshTokenResponse>
| RefreshTokenResponse;

register(
request: RegisterRequest,
):
| Promise<RegisterResponse>
| Observable<RegisterResponse>
| RegisterResponse;
): Promise<RefreshTokenResponse> | Observable<RefreshTokenResponse> | RefreshTokenResponse;

register(request: RegisterRequest): Promise<RegisterResponse> | Observable<RegisterResponse> | RegisterResponse;

logout(request: LogoutRequest): Promise<LogoutResponse> | Observable<LogoutResponse> | LogoutResponse;

validateGoogle(
request: ValidateGoogleRequest,
):
| Promise<ValidateGoogleResponse>
| Observable<ValidateGoogleResponse>
| ValidateGoogleResponse;
): Promise<ValidateGoogleResponse> | Observable<ValidateGoogleResponse> | ValidateGoogleResponse;
}

export function AuthServiceControllerMethods() {
return function (constructor: Function) {
const grpcMethods: string[] = [
'login',
'refreshToken',
'register',
'validateGoogle',
];
const grpcMethods: string[] = ["login", "refreshToken", "register", "logout", "validateGoogle"];
for (const method of grpcMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(
constructor.prototype,
method,
);
GrpcMethod('AuthService', method)(
constructor.prototype[method],
method,
descriptor,
);
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcMethod("AuthService", method)(constructor.prototype[method], method, descriptor);
}
const grpcStreamMethods: string[] = [];
for (const method of grpcStreamMethods) {
const descriptor: any = Reflect.getOwnPropertyDescriptor(
constructor.prototype,
method,
);
GrpcStreamMethod('AuthService', method)(
constructor.prototype[method],
method,
descriptor,
);
const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method);
GrpcStreamMethod("AuthService", method)(constructor.prototype[method], method, descriptor);
}
};
}

export const AUTH_SERVICE_NAME = 'AuthService';
export const AUTH_SERVICE_NAME = "AuthService";
13 changes: 12 additions & 1 deletion src/auth/auth.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
Credential,
LoginRequest,
LoginResponse,
LogoutRequest,
LogoutResponse,
RefreshTokenRequest,
RefreshTokenResponse,
RegisterRequest,
Expand All @@ -27,7 +29,7 @@
private userRepo: UserRepository,
private jwtService: JwtService,
private configService: ConfigService,
) {}
) { }

public async login(request: LoginRequest): Promise<LoginResponse> {
try {
Expand Down Expand Up @@ -81,7 +83,7 @@
}

public async refreshToken(
request: RefreshTokenRequest,

Check warning on line 86 in src/auth/auth.service.ts

View workflow job for this annotation

GitHub Actions / build (18.x)

'request' is defined but never used
): Promise<RefreshTokenResponse> {
return null;
}
Expand Down Expand Up @@ -210,4 +212,13 @@
throw err;
}
}


Check warning on line 216 in src/auth/auth.service.ts

View workflow job for this annotation

GitHub Actions / build (18.x)

'request' is defined but never used
public async logout(request: LogoutRequest): Promise<LogoutResponse> {

const response: LogoutResponse = { isDone: true };
return response;

}

}
Arnan-Dee marked this conversation as resolved.
Show resolved Hide resolved
10 changes: 9 additions & 1 deletion src/proto/auth.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ service AuthService {
rpc Login(LoginRequest) returns (LoginResponse) {}
rpc RefreshToken(RefreshTokenRequest) returns (RefreshTokenResponse) {}
rpc Register(RegisterRequest) returns (RegisterResponse) {}
rpc Logout(LogoutRequest) returns (LogoutResponse) {}
rpc ValidateGoogle(ValidateGoogleRequest) returns (ValidateGoogleResponse) {}
}

Expand Down Expand Up @@ -57,10 +58,17 @@ message RefreshTokenResponse {
Credential credential = 1;
}

message LogoutRequest {
Credential credential = 1;
}

message LogoutResponse {
bool is_done = 1;
}
message ValidateGoogleRequest {
GoogleUser user = 1;
}

message ValidateGoogleResponse {
Credential credential = 1;
}
}
Loading