Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dist/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -14913,4 +14913,4 @@ module.exports = require("zlib");
/******/ var __webpack_exports__ = __webpack_require__("./src/main.ts");
/******/
/******/ })()
;
;
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.3"
}
}
}
7 changes: 6 additions & 1 deletion src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ import { RabbitMQModule } from './rabbitmq/rabbitmq.module';
import { TutorialModule } from './tutorial/tutorial.module';
import { ReferralsModule } from './referrals/referrals.module';
import { SaveGameModule } from './save-game/save-game.module';
import { PlayerModule } from './player/player.module';
import { ProfileModule } from './profile/profile.module';
import { ProgressModule } from './progress/progress.module';

import { SorobanModule } from './soroban/soroban.module';
import { NFTModule } from './nft/nft.module';
Expand Down Expand Up @@ -85,7 +88,9 @@ import { RecommendationsModule } from './recommendations/recommendations.module'
TutorialModule,
ReferralsModule,
SaveGameModule,

PlayerModule,
ProfileModule,
ProgressModule,
SorobanModule,
NFTModule,
RewardsModule,
Expand Down
1 change: 1 addition & 0 deletions src/player/dto/create-player.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export class CreatePlayerDto {}
4 changes: 4 additions & 0 deletions src/player/dto/update-player.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { PartialType } from '@nestjs/swagger';
import { CreatePlayerDto } from './create-player.dto';

export class UpdatePlayerDto extends PartialType(CreatePlayerDto) {}
28 changes: 28 additions & 0 deletions src/player/entities/player.entity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
OneToOne,
OneToMany,
} from 'typeorm';
// import { Profile } from '../profile/profile.entity';
// import { Progress } from '../progress/progress.entity';

@Entity()
export class Player {
@PrimaryGeneratedColumn('uuid')
id: string;

@Column({ unique: true })
email: string;

@Column()
password: string;

//to be uncommented when Profile entity is created
// @OneToOne(() => Profile, profile => profile.player)
// profile: Profile;

// @OneToMany(() => Progress, progress => progress.player)
// progress: Progress[];
}
34 changes: 34 additions & 0 deletions src/player/player.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import { PlayerService } from './player.service';
import { CreatePlayerDto } from './dto/create-player.dto';
import { UpdatePlayerDto } from './dto/update-player.dto';

@Controller('player')
export class PlayerController {
constructor(private readonly playerService: PlayerService) {}

@Post()
create(@Body() createPlayerDto: CreatePlayerDto) {
return this.playerService.create(createPlayerDto);
}

@Get()
findAll() {
return this.playerService.findAll();
}

@Get(':id')
findOne(@Param('id') id: string) {
return this.playerService.findOne(+id);
}

@Patch(':id')
update(@Param('id') id: string, @Body() updatePlayerDto: UpdatePlayerDto) {
return this.playerService.update(+id, updatePlayerDto);
}

@Delete(':id')
remove(@Param('id') id: string) {
return this.playerService.remove(+id);
}
}
9 changes: 9 additions & 0 deletions src/player/player.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Module } from '@nestjs/common';
import { PlayerService } from './player.service';
import { PlayerController } from './player.controller';

@Module({
controllers: [PlayerController],
providers: [PlayerService],
})
export class PlayerModule {}
26 changes: 26 additions & 0 deletions src/player/player.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Injectable } from '@nestjs/common';
import { CreatePlayerDto } from './dto/create-player.dto';
import { UpdatePlayerDto } from './dto/update-player.dto';

@Injectable()
export class PlayerService {
create(createPlayerDto: CreatePlayerDto) {
return 'This action adds a new player';
}

findAll() {
return `This action returns all player`;
}

findOne(id: number) {
return `This action returns a #${id} player`;
}

update(id: number, updatePlayerDto: UpdatePlayerDto) {
return `This action updates a #${id} player`;
}

remove(id: number) {
return `This action removes a #${id} player`;
}
}
1 change: 1 addition & 0 deletions src/profile/dto/create-profile.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export class CreateProfileDto {}
4 changes: 4 additions & 0 deletions src/profile/dto/update-profile.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { PartialType } from '@nestjs/swagger';
import { CreateProfileDto } from './create-profile.dto';

export class UpdateProfileDto extends PartialType(CreateProfileDto) {}
18 changes: 18 additions & 0 deletions src/profile/entities/profile.entity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Player } from 'src/player/entities/player.entity';
import { Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm';

@Entity()
export class Profile {
@PrimaryGeneratedColumn('uuid')
id: string;

@Column()
username: string;

@Column({ nullable: true })
avatarUrl: string;

@OneToOne(() => Player)
@JoinColumn()
player: Player;
}
19 changes: 19 additions & 0 deletions src/profile/profile.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { Controller, Get, Patch, Body, Req, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ProfileService } from './profile.service';

@UseGuards(AuthGuard('jwt'))
@Controller('profile')
export class ProfileController {
constructor(private service: ProfileService) {}

@Get('me')
get(@Req() req) {
return this.service.get(req.user.userId);
}

@Patch('me')
update(@Req() req, @Body() body) {
return this.service.update(req.user.userId, body);
}
}
9 changes: 9 additions & 0 deletions src/profile/profile.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Module } from '@nestjs/common';
import { ProfileService } from './profile.service';
import { ProfileController } from './profile.controller';

@Module({
controllers: [ProfileController],
providers: [ProfileService],
})
export class ProfileModule {}
26 changes: 26 additions & 0 deletions src/profile/profile.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Injectable } from '@nestjs/common';
import { CreateProfileDto } from './dto/create-profile.dto';
import { UpdateProfileDto } from './dto/update-profile.dto';

@Injectable()
export class ProfileService {
create(createProfileDto: CreateProfileDto) {
return 'This action adds a new profile';
}

findAll() {
return `This action returns all profile`;
}

findOne(id: number) {
return `This action returns a #${id} profile`;
}

update(id: number, updateProfileDto: UpdateProfileDto) {
return `This action updates a #${id} profile`;
}

remove(id: number) {
return `This action removes a #${id} profile`;
}
}
1 change: 1 addition & 0 deletions src/progress/dto/create-progress.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export class CreateProgressDto {}
4 changes: 4 additions & 0 deletions src/progress/dto/update-progress.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { PartialType } from '@nestjs/swagger';
import { CreateProgressDto } from './create-progress.dto';

export class UpdateProgressDto extends PartialType(CreateProgressDto) {}
17 changes: 17 additions & 0 deletions src/progress/entities/progress.entity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { Player } from 'src/player/entities/player.entity';
import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm';

@Entity()
export class Progress {
@PrimaryGeneratedColumn('uuid')
id: string;

@Column()
questId: string;

@Column()
status: string;

@ManyToOne(() => Player)
player: Player;
}
34 changes: 34 additions & 0 deletions src/progress/progress.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import { ProgressService } from './progress.service';
import { CreateProgressDto } from './dto/create-progress.dto';
import { UpdateProgressDto } from './dto/update-progress.dto';

@Controller('progress')
export class ProgressController {
constructor(private readonly progressService: ProgressService) {}

@Post()
create(@Body() createProgressDto: CreateProgressDto) {
return this.progressService.create(createProgressDto);
}

@Get()
findAll() {
return this.progressService.findAll();
}

@Get(':id')
findOne(@Param('id') id: string) {
return this.progressService.findOne(+id);
}

@Patch(':id')
update(@Param('id') id: string, @Body() updateProgressDto: UpdateProgressDto) {
return this.progressService.update(+id, updateProgressDto);
}

@Delete(':id')
remove(@Param('id') id: string) {
return this.progressService.remove(+id);
}
}
9 changes: 9 additions & 0 deletions src/progress/progress.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Module } from '@nestjs/common';
import { ProgressService } from './progress.service';
import { ProgressController } from './progress.controller';

@Module({
controllers: [ProgressController],
providers: [ProgressService],
})
export class ProgressModule {}
26 changes: 26 additions & 0 deletions src/progress/progress.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Injectable } from '@nestjs/common';
import { CreateProgressDto } from './dto/create-progress.dto';
import { UpdateProgressDto } from './dto/update-progress.dto';

@Injectable()
export class ProgressService {
create(createProgressDto: CreateProgressDto) {
return 'This action adds a new progress';
}

findAll() {
return `This action returns all progress`;
}

findOne(id: number) {
return `This action returns a #${id} progress`;
}

update(id: number, updateProgressDto: UpdateProgressDto) {
return `This action updates a #${id} progress`;
}

remove(id: number) {
return `This action removes a #${id} progress`;
}
}