Compare commits

...

8 Commits

Author SHA1 Message Date
Sambo Chea e65c30ee20
Updated drone ci
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-24 17:26:39 +07:00
Sambo Chea a6c295cdfc
Merge branch 'main' of https://github.com/CUBETIQ/prisma-starter into main 2021-09-24 17:26:34 +07:00
Sambo Chea 5190435b68
Fixed tests and service for async
All checks were successful
continuous-integration/drone/push Build is passing
2021-09-24 17:24:41 +07:00
Sambo Chea 70f9e968d4
Update dependabot.yml 2021-09-24 17:13:12 +07:00
Sambo Chea 5a7843f114
Create dependabot.yml 2021-09-24 17:11:54 +07:00
Sambo Chea 2a4beb0029
Upgarde prisma 3.1.1 and typescript
Some checks failed
continuous-integration/drone/push Build is failing
2021-09-24 17:10:46 +07:00
Sambo Chea a175b78612
Merge branch 'master' of https://github.com/CUBETIQ/prisma-starter
Some checks failed
continuous-integration/drone/push Build is failing
2021-09-24 17:05:15 +07:00
Sambo Chea eee4841c0b
Update README.md 2021-03-16 10:07:27 +07:00
9 changed files with 61 additions and 28 deletions

View File

@ -4,7 +4,7 @@ name: ci
steps: steps:
- name: test - name: test
image: node image: d.ctdn.net/node
commands: commands:
- yarn - yarn
- yarn migrate - yarn migrate

11
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"

View File

@ -1,5 +1,7 @@
# Prisam Starter # Prisam Starter
[![Build Status](https://dci.osa.cubetiqs.com/api/badges/CUBETIQ/prisma-starter/status.svg)](https://dci.osa.cubetiqs.com/CUBETIQ/prisma-starter)
- Prisam - Prisam
- SQLite - SQLite
- TypeScript - TypeScript
- Jest - Jest

View File

@ -3,12 +3,12 @@
"license": "MIT", "license": "MIT",
"main": "main.ts", "main": "main.ts",
"devDependencies": { "devDependencies": {
"@types/jest": "^26.0.20", "@types/jest": "^27.0.2",
"jest": "^26.6.3", "jest": "^27.2.1",
"prisma": "2.18.0", "prisma": "^3.1.1",
"ts-jest": "^26.5.3", "ts-jest": "^27.0.5",
"ts-node": "9.1.1", "ts-node": "^10.2.1",
"typescript": "4.2.3" "typescript": "^4.4.3"
}, },
"scripts": { "scripts": {
"dev": "ts-node ./src/main.ts", "dev": "ts-node ./src/main.ts",
@ -16,7 +16,7 @@
"test": "jest --detectOpenHandles --forceExit" "test": "jest --detectOpenHandles --forceExit"
}, },
"dependencies": { "dependencies": {
"@prisma/client": "2.18.0" "@prisma/client": "^3.1.1"
}, },
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"

Binary file not shown.

BIN
prisma/dev.db-journal Normal file

Binary file not shown.

View File

@ -0,0 +1,20 @@
-- RedefineTables
PRAGMA foreign_keys=OFF;
CREATE TABLE "new_Profile" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"bio" TEXT NOT NULL,
"avatar" TEXT,
"userId" INTEGER NOT NULL,
"enabled" BOOLEAN NOT NULL DEFAULT true,
CONSTRAINT "Profile_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
);
INSERT INTO "new_Profile" ("avatar", "bio", "enabled", "id", "userId") SELECT "avatar", "bio", "enabled", "id", "userId" FROM "Profile";
DROP TABLE "Profile";
ALTER TABLE "new_Profile" RENAME TO "Profile";
CREATE UNIQUE INDEX "Profile_userId_key" ON "Profile"("userId");
PRAGMA foreign_key_check;
PRAGMA foreign_keys=ON;
-- RedefineIndex
DROP INDEX "User.email_unique";
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");

View File

@ -4,8 +4,8 @@ import UserRequest from "../Model/UserRequest";
const prisma = new PrismaClient(); const prisma = new PrismaClient();
function isProfileExistByEmail(email: string) { async function isProfileExistByEmail(email: string) {
const exist = prisma.profile.count({ const exist = await prisma.profile.count({
where: { where: {
user: { user: {
email: email, email: email,
@ -13,7 +13,7 @@ function isProfileExistByEmail(email: string) {
}, },
}); });
return exist.then((c) => c > 0).catch((e) => 0); return exist > 0;
} }
async function findOneProfileByEmail(email: string) { async function findOneProfileByEmail(email: string) {
@ -30,15 +30,15 @@ async function findOneProfileByEmail(email: string) {
return profile; return profile;
} }
function isExistByEmail(email: string) { async function isExistByEmail(email: string) {
const exist = prisma.user.count({ const exist = await prisma.user.count({
where: { where: {
email: email, email: email,
}, },
}); });
return exist.then((c) => c > 0).catch((e) => 0); return exist > 0;
} }
async function findOneByEmail( async function findOneByEmail(
@ -59,7 +59,7 @@ async function findOneByEmail(
} }
async function createUser(request: UserRequest) { async function createUser(request: UserRequest) {
if (isExistByEmail(request.email)) { if (await isExistByEmail(request.email)) {
return findOneByEmail(request.email); return findOneByEmail(request.email);
} }
@ -76,7 +76,7 @@ async function createUser(request: UserRequest) {
} }
async function createProfile(user: User, request: ProfileRequest) { async function createProfile(user: User, request: ProfileRequest) {
if (isProfileExistByEmail(user.email)) { if (await isProfileExistByEmail(user.email)) {
return findOneProfileByEmail(user.email); return findOneProfileByEmail(user.email);
} }

View File

@ -15,13 +15,13 @@ describe("user", function () {
const bio = "Software Developer"; const bio = "Software Developer";
// create user test // create user test
it("createUser", async (done) => { it("createUser", (done) => {
// create user // create user
await createUser({ createUser({
email: email, email: email,
name: name, name: name,
}) })
.then(async (user) => { .then((user) => {
if (user == null) { if (user == null) {
throw Error("user is null"); throw Error("user is null");
} }
@ -31,7 +31,7 @@ describe("user", function () {
expect(name).toBe(user.name); expect(name).toBe(user.name);
// create profile // create profile
await createProfile(user, { createProfile(user, {
bio: "Software Developer", bio: "Software Developer",
}) })
.then((profile) => { .then((profile) => {
@ -50,8 +50,8 @@ describe("user", function () {
}); });
// check user test // check user test
it("checkUser", async (done) => { it("checkUser", (done) => {
await findOneByEmail(email) findOneByEmail(email)
.then((user) => { .then((user) => {
if (user == null) { if (user == null) {
throw Error("user is null"); throw Error("user is null");
@ -66,8 +66,8 @@ describe("user", function () {
}); });
// check profile included user test // check profile included user test
it("checkProfileUser", async (done) => { it("checkProfileUser", (done) => {
await findOneProfileByEmail(email) findOneProfileByEmail(email)
.then((profile) => { .then((profile) => {
if (profile == null) { if (profile == null) {
throw Error("profile is null"); throw Error("profile is null");
@ -83,8 +83,8 @@ describe("user", function () {
}); });
// try to finish // try to finish
afterAll(async (done) => { afterAll((done) => {
await prisma.$disconnect(); prisma.$disconnect();
done(); done();
}); });