Skip to content

Commit

Permalink
feat: added partners endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
fagundesjg committed May 14, 2024
1 parent 43384ca commit ab4df98
Show file tree
Hide file tree
Showing 9 changed files with 111 additions and 1 deletion.
14 changes: 14 additions & 0 deletions prisma/migrations/20240514211840_/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-- CreateTable
CREATE TABLE "partners" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"link" TEXT NOT NULL,
"iconName" TEXT NOT NULL DEFAULT 'Handshake',
"created_at" VARCHAR(32) NOT NULL,
"updated_at" VARCHAR(32),

CONSTRAINT "partners_pkey" PRIMARY KEY ("id")
);

-- CreateIndex
CREATE UNIQUE INDEX "partners_name_key" ON "partners"("name");
11 changes: 11 additions & 0 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,14 @@ model ShelterManagers {
@@id([shelterId, userId])
@@map("shelter_managers")
}

model Partners {
id String @id @default(uuid())
name String @unique
link String
iconName String @default(value: "Handshake")
createdAt String @map("created_at") @db.VarChar(32)
updatedAt String? @map("updated_at") @db.VarChar(32)
@@map("partners")
}
2 changes: 2 additions & 0 deletions src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { SessionsModule } from './sessions/sessions.module';
import { SupplyCategoriesModule } from './supply-categories/supply-categories.module';
import { ShelterManagersModule } from './shelter-managers/shelter-managers.module';
import { ShelterSupplyModule } from './shelter-supply/shelter-supply.module';
import { PartnersModule } from './partners/partners.module';

@Module({
imports: [
Expand All @@ -22,6 +23,7 @@ import { ShelterSupplyModule } from './shelter-supply/shelter-supply.module';
SupplyCategoriesModule,
ShelterManagersModule,
ShelterSupplyModule,
PartnersModule,
],
controllers: [],
providers: [
Expand Down
18 changes: 18 additions & 0 deletions src/partners/partners.controller.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { PartnersController } from './partners.controller';

describe('PartnersController', () => {
let controller: PartnersController;

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
controllers: [PartnersController],
}).compile();

controller = module.get<PartnersController>(PartnersController);
});

it('should be defined', () => {
expect(controller).toBeDefined();
});
});
21 changes: 21 additions & 0 deletions src/partners/partners.controller.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import { Controller, Get, HttpException, Logger } from '@nestjs/common';
import { PartnersService } from './partners.service';
import { ServerResponse } from '../utils';

@Controller('partners')
export class PartnersController {
private logger = new Logger(PartnersController.name);

constructor(private readonly partnersService: PartnersService) {}

@Get('')
async index() {
try {
const data = await this.partnersService.index();
return new ServerResponse(200, 'Successfully get partners', data);
} catch (err: any) {
this.logger.error(`Failed to get partners: ${err}`);
throw new HttpException(err?.code ?? err?.name ?? `${err}`, 400);
}
}
}
12 changes: 12 additions & 0 deletions src/partners/partners.module.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Module } from '@nestjs/common';

import { PartnersService } from './partners.service';
import { PartnersController } from './partners.controller';
import { PrismaModule } from '../prisma/prisma.module';

@Module({
imports: [PrismaModule],
providers: [PartnersService],
controllers: [PartnersController],
})
export class PartnersModule {}
18 changes: 18 additions & 0 deletions src/partners/partners.service.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { PartnersService } from './partners.service';

describe('PartnersService', () => {
let service: PartnersService;

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [PartnersService],
}).compile();

service = module.get<PartnersService>(PartnersService);
});

it('should be defined', () => {
expect(service).toBeDefined();
});
});
14 changes: 14 additions & 0 deletions src/partners/partners.service.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Injectable } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';

import { PrismaService } from '../prisma/prisma.service';

@ApiTags('Parceiros')
@Injectable()
export class PartnersService {
constructor(private readonly prismaService: PrismaService) {}

async index() {
return await this.prismaService.partners.findMany({});
}
}
2 changes: 1 addition & 1 deletion src/shelter/shelter.service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Injectable } from '@nestjs/common';
import { Prisma } from '@prisma/client';
import { DefaultArgs } from '@prisma/client/runtime/library';
import { subDays } from 'date-fns';
import * as qs from 'qs';
import { z } from 'zod';

Expand All @@ -14,7 +15,6 @@ import {
FullUpdateShelterSchema,
UpdateShelterSchema,
} from './types/types';
import { subDays } from 'date-fns';

@Injectable()
export class ShelterService {
Expand Down

0 comments on commit ab4df98

Please sign in to comment.