Skip to content

Commit 0ce5cdd

Browse files
authored
Merge pull request #81 from Ajou-Hertz/feature/#80-add-category-to-instrument-dto
악기 API 응답 정보에 카테고리 추가
2 parents 37972ce + 5712390 commit 0ce5cdd

20 files changed

+254
-269
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.ajou.hertz.domain.instrument.constant;
2+
3+
public enum InstrumentCategory {
4+
5+
ELECTRIC_GUITAR,
6+
BASS_GUITAR,
7+
ACOUSTIC_AND_CLASSIC_GUITAR,
8+
EFFECTOR,
9+
AMPLIFIER,
10+
AUDIO_EQUIPMENT
11+
}

src/main/java/com/ajou/hertz/domain/instrument/controller/InstrumentController.java

-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import com.ajou.hertz.domain.instrument.dto.request.CreateNewElectricGuitarRequest;
3737
import com.ajou.hertz.domain.instrument.dto.request.EffectorFilterConditions;
3838
import com.ajou.hertz.domain.instrument.dto.request.ElectricGuitarFilterConditions;
39-
import com.ajou.hertz.domain.instrument.dto.request.InstrumentFilterConditions;
4039
import com.ajou.hertz.domain.instrument.dto.response.AcousticAndClassicGuitarResponse;
4140
import com.ajou.hertz.domain.instrument.dto.response.AmplifierResponse;
4241
import com.ajou.hertz.domain.instrument.dto.response.AudioEquipmentResponse;

src/main/java/com/ajou/hertz/domain/instrument/dto/AcousticAndClassicGuitarDto.java

+14-20
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.ajou.hertz.domain.instrument.constant.AcousticAndClassicGuitarModel;
88
import com.ajou.hertz.domain.instrument.constant.AcousticAndClassicGuitarPickUp;
99
import com.ajou.hertz.domain.instrument.constant.AcousticAndClassicGuitarWood;
10+
import com.ajou.hertz.domain.instrument.constant.InstrumentCategory;
1011
import com.ajou.hertz.domain.instrument.constant.InstrumentProgressStatus;
1112
import com.ajou.hertz.domain.instrument.entity.AcousticAndClassicGuitar;
1213
import com.ajou.hertz.domain.user.dto.UserDto;
@@ -42,33 +43,26 @@ private AcousticAndClassicGuitarDto(
4243
AcousticAndClassicGuitarPickUp pickUp
4344
) {
4445
super(
45-
id, seller, title, progressStatus, tradeAddress, qualityStatus,
46-
price, hasAnomaly, description, images, hashtags
46+
id, seller, InstrumentCategory.ACOUSTIC_AND_CLASSIC_GUITAR, title, progressStatus, tradeAddress,
47+
qualityStatus, price, hasAnomaly, description, images, hashtags
4748
);
4849
this.brand = brand;
4950
this.model = model;
5051
this.wood = wood;
5152
this.pickUp = pickUp;
5253
}
5354

54-
public static AcousticAndClassicGuitarDto from(AcousticAndClassicGuitar acousticAndClassicGuitar) {
55-
InstrumentDto instrumentDto = InstrumentDto.from(acousticAndClassicGuitar);
56-
return new AcousticAndClassicGuitarDto(
57-
instrumentDto.getId(),
58-
instrumentDto.getSeller(),
59-
instrumentDto.getTitle(),
60-
instrumentDto.getProgressStatus(),
61-
instrumentDto.getTradeAddress(),
62-
instrumentDto.getQualityStatus(),
63-
instrumentDto.getPrice(),
64-
instrumentDto.getHasAnomaly(),
65-
instrumentDto.getDescription(),
66-
instrumentDto.getImages(),
67-
instrumentDto.getHashtags(),
68-
acousticAndClassicGuitar.getBrand(),
69-
acousticAndClassicGuitar.getModel(),
70-
acousticAndClassicGuitar.getWood(),
71-
acousticAndClassicGuitar.getPickUp()
55+
private AcousticAndClassicGuitarDto(AcousticAndClassicGuitar acousticAndClassicGuitar) {
56+
super(
57+
acousticAndClassicGuitar
7258
);
59+
this.brand = acousticAndClassicGuitar.getBrand();
60+
this.model = acousticAndClassicGuitar.getModel();
61+
this.wood = acousticAndClassicGuitar.getWood();
62+
this.pickUp = acousticAndClassicGuitar.getPickUp();
63+
}
64+
65+
public static AcousticAndClassicGuitarDto from(AcousticAndClassicGuitar acousticAndClassicGuitar) {
66+
return new AcousticAndClassicGuitarDto(acousticAndClassicGuitar);
7367
}
7468
}

src/main/java/com/ajou/hertz/domain/instrument/dto/AmplifierDto.java

+11-19
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.ajou.hertz.domain.instrument.constant.AmplifierBrand;
77
import com.ajou.hertz.domain.instrument.constant.AmplifierType;
88
import com.ajou.hertz.domain.instrument.constant.AmplifierUsage;
9+
import com.ajou.hertz.domain.instrument.constant.InstrumentCategory;
910
import com.ajou.hertz.domain.instrument.constant.InstrumentProgressStatus;
1011
import com.ajou.hertz.domain.instrument.entity.Amplifier;
1112
import com.ajou.hertz.domain.user.dto.UserDto;
@@ -39,31 +40,22 @@ private AmplifierDto(
3940
AmplifierUsage usage
4041
) {
4142
super(
42-
id, seller, title, progressStatus, tradeAddress, qualityStatus,
43-
price, hasAnomaly, description, images, hashtags
43+
id, seller, InstrumentCategory.AMPLIFIER, title, progressStatus, tradeAddress,
44+
qualityStatus, price, hasAnomaly, description, images, hashtags
4445
);
4546
this.type = type;
4647
this.brand = brand;
4748
this.usage = usage;
4849
}
4950

51+
private AmplifierDto(Amplifier amplifier) {
52+
super(amplifier);
53+
this.type = amplifier.getType();
54+
this.brand = amplifier.getBrand();
55+
this.usage = amplifier.getUsage();
56+
}
57+
5058
public static AmplifierDto from(Amplifier amplifier) {
51-
InstrumentDto instrumentDto = InstrumentDto.from(amplifier);
52-
return new AmplifierDto(
53-
instrumentDto.getId(),
54-
instrumentDto.getSeller(),
55-
instrumentDto.getTitle(),
56-
instrumentDto.getProgressStatus(),
57-
instrumentDto.getTradeAddress(),
58-
instrumentDto.getQualityStatus(),
59-
instrumentDto.getPrice(),
60-
instrumentDto.getHasAnomaly(),
61-
instrumentDto.getDescription(),
62-
instrumentDto.getImages(),
63-
instrumentDto.getHashtags(),
64-
amplifier.getType(),
65-
amplifier.getBrand(),
66-
amplifier.getUsage()
67-
);
59+
return new AmplifierDto(amplifier);
6860
}
6961
}

src/main/java/com/ajou/hertz/domain/instrument/dto/AudioEquipmentDto.java

+9-17
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import com.ajou.hertz.common.dto.AddressDto;
66
import com.ajou.hertz.domain.instrument.constant.AudioEquipmentType;
7+
import com.ajou.hertz.domain.instrument.constant.InstrumentCategory;
78
import com.ajou.hertz.domain.instrument.constant.InstrumentProgressStatus;
89
import com.ajou.hertz.domain.instrument.entity.AudioEquipment;
910
import com.ajou.hertz.domain.user.dto.UserDto;
@@ -33,27 +34,18 @@ private AudioEquipmentDto(
3334
AudioEquipmentType type
3435
) {
3536
super(
36-
id, seller, title, progressStatus, tradeAddress, qualityStatus,
37-
price, hasAnomaly, description, images, hashtags
37+
id, seller, InstrumentCategory.AUDIO_EQUIPMENT, title, progressStatus, tradeAddress,
38+
qualityStatus, price, hasAnomaly, description, images, hashtags
3839
);
3940
this.type = type;
4041
}
4142

43+
private AudioEquipmentDto(AudioEquipment audioEquipment) {
44+
super(audioEquipment);
45+
this.type = audioEquipment.getType();
46+
}
47+
4248
public static AudioEquipmentDto from(AudioEquipment audioEquipment) {
43-
InstrumentDto instrumentDto = InstrumentDto.from(audioEquipment);
44-
return new AudioEquipmentDto(
45-
instrumentDto.getId(),
46-
instrumentDto.getSeller(),
47-
instrumentDto.getTitle(),
48-
instrumentDto.getProgressStatus(),
49-
instrumentDto.getTradeAddress(),
50-
instrumentDto.getQualityStatus(),
51-
instrumentDto.getPrice(),
52-
instrumentDto.getHasAnomaly(),
53-
instrumentDto.getDescription(),
54-
instrumentDto.getImages(),
55-
instrumentDto.getHashtags(),
56-
audioEquipment.getType()
57-
);
49+
return new AudioEquipmentDto(audioEquipment);
5850
}
5951
}

src/main/java/com/ajou/hertz/domain/instrument/dto/BassGuitarDto.java

+12-20
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.ajou.hertz.domain.instrument.constant.BassGuitarPickUp;
88
import com.ajou.hertz.domain.instrument.constant.BassGuitarPreAmplifier;
99
import com.ajou.hertz.domain.instrument.constant.GuitarColor;
10+
import com.ajou.hertz.domain.instrument.constant.InstrumentCategory;
1011
import com.ajou.hertz.domain.instrument.constant.InstrumentProgressStatus;
1112
import com.ajou.hertz.domain.instrument.entity.BassGuitar;
1213
import com.ajou.hertz.domain.user.dto.UserDto;
@@ -42,33 +43,24 @@ private BassGuitarDto(
4243
GuitarColor color
4344
) {
4445
super(
45-
id, seller, title, progressStatus, tradeAddress, qualityStatus,
46-
price, hasAnomaly, description, images, hashtags
46+
id, seller, InstrumentCategory.BASS_GUITAR, title, progressStatus, tradeAddress,
47+
qualityStatus, price, hasAnomaly, description, images, hashtags
4748
);
4849
this.brand = brand;
4950
this.pickUp = pickUp;
5051
this.preAmplifier = preAmplifier;
5152
this.color = color;
5253
}
5354

55+
private BassGuitarDto(BassGuitar bassGuitar) {
56+
super(bassGuitar);
57+
this.brand = bassGuitar.getBrand();
58+
this.pickUp = bassGuitar.getPickUp();
59+
this.preAmplifier = bassGuitar.getPreAmplifier();
60+
this.color = bassGuitar.getColor();
61+
}
62+
5463
public static BassGuitarDto from(BassGuitar bassGuitar) {
55-
InstrumentDto instrumentDto = InstrumentDto.from(bassGuitar);
56-
return new BassGuitarDto(
57-
instrumentDto.getId(),
58-
instrumentDto.getSeller(),
59-
instrumentDto.getTitle(),
60-
instrumentDto.getProgressStatus(),
61-
instrumentDto.getTradeAddress(),
62-
instrumentDto.getQualityStatus(),
63-
instrumentDto.getPrice(),
64-
instrumentDto.getHasAnomaly(),
65-
instrumentDto.getDescription(),
66-
instrumentDto.getImages(),
67-
instrumentDto.getHashtags(),
68-
bassGuitar.getBrand(),
69-
bassGuitar.getPickUp(),
70-
bassGuitar.getPreAmplifier(),
71-
bassGuitar.getColor()
72-
);
64+
return new BassGuitarDto(bassGuitar);
7365
}
7466
}

src/main/java/com/ajou/hertz/domain/instrument/dto/EffectorDto.java

+10-18
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.ajou.hertz.common.dto.AddressDto;
66
import com.ajou.hertz.domain.instrument.constant.EffectorFeature;
77
import com.ajou.hertz.domain.instrument.constant.EffectorType;
8+
import com.ajou.hertz.domain.instrument.constant.InstrumentCategory;
89
import com.ajou.hertz.domain.instrument.constant.InstrumentProgressStatus;
910
import com.ajou.hertz.domain.instrument.entity.Effector;
1011
import com.ajou.hertz.domain.user.dto.UserDto;
@@ -36,29 +37,20 @@ private EffectorDto(
3637
EffectorFeature feature
3738
) {
3839
super(
39-
id, seller, title, progressStatus, tradeAddress, qualityStatus,
40-
price, hasAnomaly, description, images, hashtags
40+
id, seller, InstrumentCategory.EFFECTOR, title, progressStatus, tradeAddress,
41+
qualityStatus, price, hasAnomaly, description, images, hashtags
4142
);
4243
this.type = type;
4344
this.feature = feature;
4445
}
4546

47+
private EffectorDto(Effector effector) {
48+
super(effector);
49+
this.type = effector.getType();
50+
this.feature = effector.getFeature();
51+
}
52+
4653
public static EffectorDto from(Effector effector) {
47-
InstrumentDto instrumentDto = InstrumentDto.from(effector);
48-
return new EffectorDto(
49-
instrumentDto.getId(),
50-
instrumentDto.getSeller(),
51-
instrumentDto.getTitle(),
52-
instrumentDto.getProgressStatus(),
53-
instrumentDto.getTradeAddress(),
54-
instrumentDto.getQualityStatus(),
55-
instrumentDto.getPrice(),
56-
instrumentDto.getHasAnomaly(),
57-
instrumentDto.getDescription(),
58-
instrumentDto.getImages(),
59-
instrumentDto.getHashtags(),
60-
effector.getType(),
61-
effector.getFeature()
62-
);
54+
return new EffectorDto(effector);
6355
}
6456
}

src/main/java/com/ajou/hertz/domain/instrument/dto/ElectricGuitarDto.java

+15-23
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.ajou.hertz.domain.instrument.constant.ElectricGuitarBrand;
77
import com.ajou.hertz.domain.instrument.constant.ElectricGuitarModel;
88
import com.ajou.hertz.domain.instrument.constant.GuitarColor;
9+
import com.ajou.hertz.domain.instrument.constant.InstrumentCategory;
910
import com.ajou.hertz.domain.instrument.constant.InstrumentProgressStatus;
1011
import com.ajou.hertz.domain.instrument.entity.ElectricGuitar;
1112
import com.ajou.hertz.domain.user.dto.UserDto;
@@ -33,41 +34,32 @@ private ElectricGuitarDto(
3334
Integer price,
3435
Boolean hasAnomaly,
3536
String description,
37+
List<InstrumentImageDto> images,
38+
List<String> hashtags,
3639
ElectricGuitarBrand brand,
3740
ElectricGuitarModel model,
3841
Short productionYear,
39-
GuitarColor color,
40-
List<InstrumentImageDto> images,
41-
List<String> hashtags
42+
GuitarColor color
4243
) {
4344
super(
44-
id, seller, title, progressStatus, tradeAddress, qualityStatus,
45-
price, hasAnomaly, description, images, hashtags
45+
id, seller, InstrumentCategory.ELECTRIC_GUITAR, title, progressStatus, tradeAddress,
46+
qualityStatus, price, hasAnomaly, description, images, hashtags
4647
);
4748
this.brand = brand;
4849
this.model = model;
4950
this.productionYear = productionYear;
5051
this.color = color;
5152
}
5253

54+
private ElectricGuitarDto(ElectricGuitar electricGuitar) {
55+
super(electricGuitar);
56+
this.brand = electricGuitar.getBrand();
57+
this.model = electricGuitar.getModel();
58+
this.productionYear = electricGuitar.getProductionYear();
59+
this.color = electricGuitar.getColor();
60+
}
61+
5362
public static ElectricGuitarDto from(ElectricGuitar electricGuitar) {
54-
InstrumentDto instrumentDto = InstrumentDto.from(electricGuitar);
55-
return new ElectricGuitarDto(
56-
instrumentDto.getId(),
57-
instrumentDto.getSeller(),
58-
instrumentDto.getTitle(),
59-
instrumentDto.getProgressStatus(),
60-
instrumentDto.getTradeAddress(),
61-
instrumentDto.getQualityStatus(),
62-
instrumentDto.getPrice(),
63-
instrumentDto.getHasAnomaly(),
64-
instrumentDto.getDescription(),
65-
electricGuitar.getBrand(),
66-
electricGuitar.getModel(),
67-
electricGuitar.getProductionYear(),
68-
electricGuitar.getColor(),
69-
instrumentDto.getImages(),
70-
instrumentDto.getHashtags()
71-
);
63+
return new ElectricGuitarDto(electricGuitar);
7264
}
7365
}

0 commit comments

Comments
 (0)