Skip to content

Commit

Permalink
Merge pull request #325 from boostcampwm2023/BE/release
Browse files Browse the repository at this point in the history
[BE] : 1.0.0 ๋ฐฐํฌ
  • Loading branch information
SwiftyJunnos authored Dec 14, 2023
2 parents 37100aa + 80a25ad commit 9e50239
Show file tree
Hide file tree
Showing 36 changed files with 316 additions and 3,306 deletions.
133 changes: 132 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,135 @@ Temporary Items
# iCloud generated files
*.icloud

# End of https://www.toptal.com/developers/gitignore/api/macos
### Swift ###
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3

## Obj-C/Swift specific
*.hmap

## App packaging
*.ipa
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
# Package.resolved
# *.xcodeproj
# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata
# hence it is not needed unless you have added a package configuration file to your project
# .swiftpm

.build/

# CocoaPods
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
# Pods/
# Add this line if you want to avoid checking in source code from the Xcode workspace
# *.xcworkspace

# Carthage
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build/

# Accio dependency management
Dependencies/
.accio/

# fastlane
# It is recommended to not store the screenshots in the git repo.
# Instead, use fastlane to re-generate the screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output

# Code Injection
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode

iOSInjectionProject/

### SwiftPackageManager ###
Packages
xcuserdata
*.xcodeproj


### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

### Xcode ###

## Xcode 8 and earlier

### Xcode Patch ###
*.xcodeproj/*
!*.xcodeproj/project.pbxproj
!*.xcodeproj/xcshareddata/
!*.xcodeproj/project.xcworkspace/
!*.xcworkspace/contents.xcworkspacedata
/*.gcno
**/xcshareddata/WorkspaceSettings.xcsettings

# End of https://www.toptal.com/developers/gitignore/api/macos,windows,xcode,swift,swiftpackagemanager
node_modules
# End of https://www.toptal.com/developers/gitignore/api/macos
26 changes: 21 additions & 5 deletions BE/musicspot/public/release.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,26 @@
<title>๋ฐฐํฌ ํŽ˜์ด์ง€</title>
</head>
<body>
<a
href="itms-services://?action=download-manifest&url=https://github.com/SwiftyJunnos/ipa/raw/main/manifest.plist"
>0.1.1</a
>
<span>๋ฐฐํฌ 2023.12.08</span>
<div>
<a
href="itms-services://?action=download-manifest&url=https://github.com/SwiftyJunnos/ipa/raw/main/manifest.plist"
>0.1.1</a
>
<span>๋ฐฐํฌ 2023.12.08</span>
</div>
<div>
<a
href="itms-services://?action=download-manifest&url=https://github.com/SwiftyJunnos/ipa/raw/main/0.5.0/manifest.plist"
>0.5.0</a
>
<span>๋ฐฐํฌ 2023.12.11</span>
</div>
<div>
<a
href="itms-services://?action=download-manifest&url=https://github.com/SwiftyJunnos/ipa/raw/main/1.0.0/manifest.plist"
>1.0.0</a
>
<span>๋ฐฐํฌ 2023.12.14(์ตœ์‹ )</span>
</div>
</body>
</html>
2 changes: 2 additions & 0 deletions BE/musicspot/src/common/util/coordinate.util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ export const is1DArray = (arr) => {
if (!isInCoordinateRange(arr)) {
return false;
}
} else {
return false;
}

return true;
Expand Down
19 changes: 3 additions & 16 deletions BE/musicspot/src/journey/controller/journey.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import {
} from '../dto/journeyRecord/journeyRecord.dto';
import { StartJourneyResDTO } from '../dto/journeyStart/journeyStart.dto';
import { DeleteJourneyReqDTO } from '../dto/journeyDelete.dto';
import { LastJourneyResDTO } from '../dto/journeyLast.dto';

@Controller('journey')
@ApiTags('journey ๊ด€๋ จ API')
Expand Down Expand Up @@ -133,9 +134,9 @@ export class JourneyController {
})
@ApiCreatedResponse({
description: '์‚ฌ์šฉ์ž๊ฐ€ ์ง„ํ–‰์ค‘์ด์—ˆ๋˜ ์—ฌ์ • ์ •๋ณด',
type: Journey,
type: LastJourneyResDTO,
})
@Get('loadLastData')
@Get('last')
async loadLastData(@Query('userId') userId: string) {
return await this.journeyService.loadLastJourney(userId);
}
Expand Down Expand Up @@ -166,17 +167,3 @@ export class JourneyController {
return await this.journeyService.deleteJourneyById(deleteJourneyDto);
}
}

// @ApiOperation({
// summary: '์—ฌ์ • ์กฐํšŒ API',
// description: 'ํ•ด๋‹น ๋ฒ”์œ„ ๋‚ด์˜ ์—ฌ์ •๋“ค์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.',
// })
// @ApiCreatedResponse({
// description: '๋ฒ”์œ„์— ์žˆ๋Š” ์—ฌ์ •์˜ ๊ธฐ๋ก๋“ค์„ ๋ฐ˜ํ™˜',
// type: CheckJourneyResDTO,
// })
// @Post('check')
// @UsePipes(ValidationPipe) //์œ ํšจ์„ฑ ์ฒดํฌ
// async checkPost(@Body() checkJourneyDTO: CheckJourneyReqDTO) {
// return await this.journeyService.checkJourney(checkJourneyDTO);
// }
86 changes: 86 additions & 0 deletions BE/musicspot/src/journey/dto/journeyLast.dto.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsString, IsDateString } from 'class-validator';
import { UUID } from 'crypto';

export class SpotDTO {
@ApiProperty({ description: '์—ฌ์ • ID', example: '65649c91380cafcab8869ed2' })
readonly journeyId: string;

@ApiProperty({ description: 'spot ์œ„์น˜', example: [37.555913, 126.972313] })
readonly coordinate: number[];

@ApiProperty({ description: '๊ธฐ๋ก ์‹œ๊ฐ„', example: '2023-11-22T12:00:00Z' })
readonly timestamp: string;

@ApiProperty({
description: 'presigned url',
example:
'https://music-spot-storage.kr.object.ncloudstorage.com/path/name?AWSAccessKeyId=key&Expires=sec&Signature=signature',
})
readonly photoUrl: string;
}

class journeyMetadataDto {
@ApiProperty({
description: '์—ฌ์ • ์‹œ์ž‘ ์‹œ๊ฐ„',
example: '2023-11-22T15:30:00.000+09:00',
})
readonly startTimestamp: string;

@ApiProperty({
description: '์—ฌ์ • ์ข…๋ฃŒ ์‹œ๊ฐ„',
example: '2023-11-22T15:30:00.000+09:00',
})
readonly endTimestamp: string;
}

export class JourneyDTO {
@ApiProperty({ description: '์—ฌ์ • ID', example: '65649c91380cafcab8869ed2' })
readonly _id: string;

@ApiProperty({ description: '์—ฌ์ • ์ œ๋ชฉ', example: '์—ฌ์ • ์ œ๋ชฉ' })
readonly title: string;

@ApiProperty({ type: [SpotDTO], description: 'spot ๋ฐฐ์—ด' })
readonly spots: SpotDTO[];

@ApiProperty({
description: '์œ„์น˜ ์ขŒํ‘œ ๋ฐฐ์—ด',
example: [
[37.775, 122.4195],
[37.7752, 122.4197],
[37.7754, 122.4199],
],
})
readonly coordinates: number[][];

@ApiProperty({ description: '์—ฌ์ • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ', type: journeyMetadataDto })
readonly journeyMetadata: journeyMetadataDto;
}

export class LastJourneyResDTO {
@ApiProperty({ description: '์—ฌ์ • ID', example: '65649c91380cafcab8869ed2' })
readonly _id: string;

@ApiProperty({ description: '์—ฌ์ • ์ œ๋ชฉ', example: '์—ฌ์ • ์ œ๋ชฉ' })
readonly title: string;

@ApiProperty({ type: [SpotDTO], description: 'spot ๋ฐฐ์—ด' })
readonly spots: SpotDTO[];

@ApiProperty({
description: '์œ„์น˜ ์ขŒํ‘œ ๋ฐฐ์—ด',
example: [
[37.775, 122.4195],
[37.7752, 122.4197],
[37.7754, 122.4199],
],
})
readonly coordinates: number[][];

@ApiProperty({ description: '์—ฌ์ • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ', type: journeyMetadataDto })
readonly journeyMetadata: journeyMetadataDto;

@ApiProperty({ description: '์—ฌ์ • ๋งˆ๋ฌด๋ฆฌ ์—ฌ๋ถ€' })
readonly isRecording: boolean;
}
Loading

0 comments on commit 9e50239

Please sign in to comment.