Skip to content
Snippets Groups Projects
Commit d00cd379 authored by axel huillard's avatar axel huillard Committed by Antoine Marquis
Browse files

ajout des éléments pour la connexion à la BDD et l'ajout de marqueurs (places)...

ajout des éléments pour la connexion à la BDD et l'ajout de marqueurs (places) en BDD ainsi que leur récupération
parent 82118ef9
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,8 @@
"@nestjs/core": "^8.0.0",
"@nestjs/mongoose": "^9.0.3",
"@nestjs/platform-express": "^8.0.0",
"class-transformer": "^0.5.1",
"class-validator": "^0.13.2",
"mongoose": "^6.3.1",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
......@@ -2963,6 +2965,20 @@
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
"dev": true
},
"node_modules/class-transformer": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
"integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="
},
"node_modules/class-validator": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz",
"integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==",
"dependencies": {
"libphonenumber-js": "^1.9.43",
"validator": "^13.7.0"
}
},
"node_modules/cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
......@@ -6207,6 +6223,11 @@
"node": ">= 0.8.0"
}
},
"node_modules/libphonenumber-js": {
"version": "1.9.52",
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.52.tgz",
"integrity": "sha512-8k83chc+zMj+J/RkaBxi0PpSTAdzHmpqzCMqquSJVRfbZFr8DCp6vPC7ms2PIPGxeqajZLI6CBLW5nLCJCJrYg=="
},
"node_modules/lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
......@@ -8626,6 +8647,14 @@
"node": ">=10.12.0"
}
},
"node_modules/validator": {
"version": "13.7.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz",
"integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
......@@ -11246,6 +11275,20 @@
"integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
"dev": true
},
"class-transformer": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz",
"integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw=="
},
"class-validator": {
"version": "0.13.2",
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz",
"integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==",
"requires": {
"libphonenumber-js": "^1.9.43",
"validator": "^13.7.0"
}
},
"cli-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
......@@ -13718,6 +13761,11 @@
"type-check": "~0.4.0"
}
},
"libphonenumber-js": {
"version": "1.9.52",
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.52.tgz",
"integrity": "sha512-8k83chc+zMj+J/RkaBxi0PpSTAdzHmpqzCMqquSJVRfbZFr8DCp6vPC7ms2PIPGxeqajZLI6CBLW5nLCJCJrYg=="
},
"lines-and-columns": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
......@@ -15502,6 +15550,11 @@
"source-map": "^0.7.3"
}
},
"validator": {
"version": "13.7.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz",
"integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw=="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
......
......@@ -25,6 +25,8 @@
"@nestjs/core": "^8.0.0",
"@nestjs/mongoose": "^9.0.3",
"@nestjs/platform-express": "^8.0.0",
"class-transformer": "^0.5.1",
"class-validator": "^0.13.2",
"mongoose": "^6.3.1",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
......
......@@ -8,11 +8,6 @@ const places = require(join(__dirname, '..', 'resources/places.json'));
export class AppController {
constructor(private readonly appService: AppService) {}
@Get("allplaces")
allplaces(): any {
return places;
}
@Get("placedata")
placedata(): any {
return {
......@@ -30,7 +25,7 @@ export class AppController {
"place_restant": 5
},
"place_id": "ChIJj62e80jHwoARusJT4mjohWw",
"price_level": 2,
"price": 2,
"rating": 4.6,
"types": [
"colocation",
......
......@@ -5,7 +5,7 @@ import { AppService } from './app.service';
import { DatabaseModule } from './database/database.module';
@Module({
imports: [],
imports: [DatabaseModule],
controllers: [AppController],
providers: [AppService],
})
......
import { Controller, Get, Post, Body } from '@nestjs/common';
import { PlaceService } from './places/place.service';
import { CreatePlaceDto } from './places/place.dto';
@Controller()
export class DatabaseController {
constructor(private readonly placeService: PlaceService) {}
@Get("allplaces")
allplaces(): any {
return this.placeService.findAll();
}
@Post("addplace")
addplace(@Body() data): any {
const createPlaceDto = new CreatePlaceDto;
createPlaceDto.formatted_address = data.place.formatted_address;
createPlaceDto.geometry = data.place.geometry;
createPlaceDto.id = data.place.id;
createPlaceDto.name = data.place.name;
createPlaceDto.loue = data.place.loue;
createPlaceDto.place_id = data.place.place_id;
createPlaceDto.price = data.place.price;
createPlaceDto.rating = data.place.rating;
createPlaceDto.types = data.place.type;
return this.placeService.create(createPlaceDto);
}
}
......@@ -4,11 +4,12 @@ import { MongooseModule } from '@nestjs/mongoose';
import { databaseProviders } from './providers/database.providers';
import { PlaceService } from './places/place.service';
import { placeProviders } from './places/place.providers';
import { DatabaseController } from './database.controller';
@Module({
imports: [],
providers: [...databaseProviders],
imports: [MongooseModule.forRoot("mongodb://localhost/map_ut")],
providers: [...databaseProviders,...placeProviders,PlaceService],
exports: [...databaseProviders],
controllers: [],
controllers: [DatabaseController],
})
export class DatabaseModule {}
import { IsInt, IsString, IsObject, } from 'class-validator';
export class CreatePlaceDto {
@IsString()
formatted_address: string;
@IsObject()
geometry: any;
@IsString()
id: string;
@IsString()
name: string;
@IsObject()
loue: any;
@IsString()
place_id: string;
price: number;
rating: number;
@IsString()
types: string[];
}
import { Connection } from 'mongoose';
import { PlaceSchema } from './place.schema';
export const catsProviders = [
export const placeProviders = [
{
provide: 'PLACE_MODEL',
useFactory: (connection: Connection) => connection.model('Place', PlaceSchema),
......
......@@ -3,13 +3,12 @@ import { Document } from 'mongoose';
export type PlaceDocument = Place & Document;
@Schema()
export class Place {
@Prop()
formatted_address: string;
@Prop()
@Prop({type: {location : {lat : Number, lng : Number}}})
geometry: any;
@Prop()
......@@ -18,7 +17,7 @@ export class Place {
@Prop()
name: string;
@Prop()
@Prop({type: {loue : Boolean, place_restant : Number}})
loue: any;
@Prop()
......
import { Model } from 'mongoose';
import { Injectable, Inject } from '@nestjs/common';
import { Place } from './interfaces/place.interface';
import { CreateCatDto } from './dto/create-cat.dto';
import { Place, PlaceDocument } from './place.schema';
import { CreatePlaceDto } from './place.dto';
@Injectable()
export class PlaceService {
constructor(
@Inject('PLACE_MODEL')
private catModel: Model<Cat>,
private placeModel: Model<Place>,
) {}
async create(createPlaceDto: CreatePlaceDto): Promise<Place> {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment