user.service
This commit is contained in:
parent
d180cd70e8
commit
71ddc7eb3e
|
|
@ -306,6 +306,7 @@ export class DrizzleService {
|
||||||
// Optional: Aktualisierung von Name und sign_in_provider, falls sich diese ändern sollten
|
// Optional: Aktualisierung von Name und sign_in_provider, falls sich diese ändern sollten
|
||||||
name: createUserDto.name,
|
name: createUserDto.name,
|
||||||
sign_in_provider: createUserDto.sign_in_provider,
|
sign_in_provider: createUserDto.sign_in_provider,
|
||||||
|
numberOfLogins: sql`${users.numberOfLogins} + 1`,
|
||||||
})
|
})
|
||||||
.where(eq(users.email, createUserDto.email))
|
.where(eq(users.email, createUserDto.email))
|
||||||
.returning();
|
.returning();
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
// user.controller.ts
|
// user.controller.ts
|
||||||
import { Body, Controller, Post } from '@nestjs/common';
|
import { Body, Controller, Post, UseGuards } from '@nestjs/common';
|
||||||
import type { InsertUser } from '../db/schema';
|
import type { InsertUser } from '../db/schema';
|
||||||
|
import { AuthGuard } from '../service/auth.guard';
|
||||||
import { DrizzleService } from './drizzle.service';
|
import { DrizzleService } from './drizzle.service';
|
||||||
|
|
||||||
@Controller('users')
|
@Controller('users')
|
||||||
|
@UseGuards(AuthGuard)
|
||||||
export class UserController {
|
export class UserController {
|
||||||
constructor(private readonly drizzleService: DrizzleService) {}
|
constructor(private readonly drizzleService: DrizzleService) {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ export const users = table(
|
||||||
role: rolesEnum().default('guest'),
|
role: rolesEnum().default('guest'),
|
||||||
sign_in_provider: t.varchar('sign_in_provider', { length: 50 }),
|
sign_in_provider: t.varchar('sign_in_provider', { length: 50 }),
|
||||||
lastLogin: t.timestamp('lastLogin', { mode: 'date' }).defaultNow(),
|
lastLogin: t.timestamp('lastLogin', { mode: 'date' }).defaultNow(),
|
||||||
|
numberOfLogins: t.integer('numberOfLogins').default(1), // Neue Spalte
|
||||||
},
|
},
|
||||||
table => [t.uniqueIndex('users_idx').on(table.id)],
|
table => [t.uniqueIndex('users_idx').on(table.id)],
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@ CREATE TABLE "users" (
|
||||||
"email" varchar NOT NULL,
|
"email" varchar NOT NULL,
|
||||||
"role" "roles" DEFAULT 'guest',
|
"role" "roles" DEFAULT 'guest',
|
||||||
"sign_in_provider" varchar(50),
|
"sign_in_provider" varchar(50),
|
||||||
"lastLogin" timestamp DEFAULT now()
|
"lastLogin" timestamp DEFAULT now(),
|
||||||
|
"numberOfLogins" integer DEFAULT 1
|
||||||
);
|
);
|
||||||
--> statement-breakpoint
|
--> statement-breakpoint
|
||||||
CREATE UNIQUE INDEX "deck_idx" ON "deck" USING btree ("id");--> statement-breakpoint
|
CREATE UNIQUE INDEX "deck_idx" ON "deck" USING btree ("id");--> statement-breakpoint
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"id": "2bed4eae-3e6e-414b-85e2-d16e632c17ef",
|
"id": "c323fb0d-9c45-4675-9d26-195222c7f89c",
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
"prevId": "00000000-0000-0000-0000-000000000000",
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"dialect": "postgresql",
|
"dialect": "postgresql",
|
||||||
|
|
@ -195,19 +195,19 @@
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false
|
"notNull": false
|
||||||
},
|
},
|
||||||
"inserted": {
|
|
||||||
"name": "inserted",
|
|
||||||
"type": "timestamp",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"default": "now()"
|
|
||||||
},
|
|
||||||
"lastLogin": {
|
"lastLogin": {
|
||||||
"name": "lastLogin",
|
"name": "lastLogin",
|
||||||
"type": "timestamp",
|
"type": "timestamp",
|
||||||
"primaryKey": false,
|
"primaryKey": false,
|
||||||
"notNull": false,
|
"notNull": false,
|
||||||
"default": "now()"
|
"default": "now()"
|
||||||
|
},
|
||||||
|
"numberOfLogins": {
|
||||||
|
"name": "numberOfLogins",
|
||||||
|
"type": "integer",
|
||||||
|
"primaryKey": false,
|
||||||
|
"notNull": false,
|
||||||
|
"default": 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"indexes": {
|
"indexes": {
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@
|
||||||
{
|
{
|
||||||
"idx": 0,
|
"idx": 0,
|
||||||
"version": "7",
|
"version": "7",
|
||||||
"when": 1739461160843,
|
"when": 1739468475557,
|
||||||
"tag": "0000_fuzzy_invaders",
|
"tag": "0000_giant_blink",
|
||||||
"breakpoints": true
|
"breakpoints": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue