Skip to content

Commit 942ccff

Browse files
committed
Setting, Contact profile are implemented
1 parent 4ebd51f commit 942ccff

23 files changed

+497
-1
lines changed

src/main/java/com/manir/springbootecommercerestapi/config/SecurityConfig.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ protected void configure(HttpSecurity http) throws Exception {
4848
//to permit all get request and secure post put and delete methods
4949
.antMatchers(HttpMethod.GET, "/api/**").permitAll()
5050
//authorize singIn and signUp
51-
.antMatchers("/api/v1/auth/**").permitAll()
51+
.antMatchers("/api/v*/auth/**").permitAll()
52+
.antMatchers(HttpMethod.POST, "/api/v*/contact/**").permitAll()
5253
.anyRequest()
5354
.authenticated();
5455

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.manir.springbootecommercerestapi.controller;
2+
3+
import com.manir.springbootecommercerestapi.dto.ContactDto;
4+
import com.manir.springbootecommercerestapi.service.ContactService;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.http.HttpStatus;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.security.access.prepost.PreAuthorize;
9+
import org.springframework.web.bind.annotation.*;
10+
11+
import javax.servlet.http.HttpServletRequest;
12+
import java.util.List;
13+
14+
@RestController
15+
@RequestMapping(value = "api/v1/contact")
16+
public class ContactController {
17+
@Autowired
18+
private ContactService contactService;
19+
20+
@PostMapping("/sendMessage")
21+
public ResponseEntity<ContactDto> sendMessage(@RequestBody ContactDto contactDto,
22+
HttpServletRequest request){
23+
ContactDto responseMessage = contactService.sendMessage(contactDto, request);
24+
return new ResponseEntity<>(responseMessage, HttpStatus.CREATED);
25+
}
26+
27+
//get messages api
28+
@PreAuthorize("hasRole('ADMIN')")
29+
@GetMapping("/allMessages")
30+
public List<ContactDto> getAllMessages(){
31+
return contactService.getMessages();
32+
}
33+
}

src/main/java/com/manir/springbootecommercerestapi/controller/ProductController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,10 @@ public ResponseEntity<String> deleteProduct(@PathVariable Long productId){
7777
return new ResponseEntity<>("Product with id: "+ productId +" is deleted successfully:)", HttpStatus.OK);
7878
}
7979

80+
//search product api
81+
@GetMapping("/search")
82+
public List<ProductDto> searchProduct(@RequestParam(value = "query") String query){
83+
return productService.searchProduct(query);
84+
}
85+
8086
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.manir.springbootecommercerestapi.controller;
2+
3+
import com.manir.springbootecommercerestapi.dto.SettingDto;
4+
import com.manir.springbootecommercerestapi.model.Setting;
5+
import com.manir.springbootecommercerestapi.repository.SettingRepository;
6+
import com.manir.springbootecommercerestapi.service.SettingService;
7+
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.http.HttpStatus;
9+
import org.springframework.http.ResponseEntity;
10+
import org.springframework.security.access.prepost.PreAuthorize;
11+
import org.springframework.web.bind.annotation.*;
12+
13+
import java.util.Optional;
14+
15+
@RestController
16+
@RequestMapping(value = "api/v1/setting")
17+
public class SettingController {
18+
@Autowired
19+
private SettingService settingService;
20+
@Autowired
21+
private SettingRepository settingRepository;
22+
23+
//post first setting api
24+
@PreAuthorize("hasRole('ADMIN')")
25+
@PostMapping("/createSetting")
26+
public ResponseEntity<SettingDto> createSetting(@RequestBody SettingDto settingDto){
27+
SettingDto createdSetting = settingService.addSettingFirstTime(settingDto);
28+
return new ResponseEntity<>(createdSetting, HttpStatus.CREATED);
29+
}
30+
31+
//edit existing setting api
32+
@PreAuthorize("hasRole('ADMIN')")
33+
@PutMapping("/editSetting")
34+
public ResponseEntity<SettingDto> editSetting(@RequestBody SettingDto settingDto){
35+
Optional<Setting> existingSetting = settingRepository.findAll().stream().findFirst();
36+
SettingDto editedSetting = settingService.updateSetting(settingDto, existingSetting.get().getId());
37+
38+
return ResponseEntity.ok(editedSetting);
39+
}
40+
41+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.manir.springbootecommercerestapi.dto;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class ContactDto {
7+
private Long id;
8+
private String name;
9+
private String email;
10+
private String phone;
11+
private String subject;
12+
private String message;
13+
private String ipAddress;
14+
private String status;
15+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.manir.springbootecommercerestapi.dto;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class FaqDto {
7+
private Long id;
8+
private String question;
9+
private String answer;
10+
private String status;
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.manir.springbootecommercerestapi.dto;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class ProfileDto {
7+
private Long id;
8+
private String image;
9+
private String address;
10+
private String phone;
11+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.manir.springbootecommercerestapi.dto;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class SettingDto {
7+
private Long id;
8+
private String title;
9+
private String keywords;
10+
private String description;
11+
private String company;
12+
private String address;
13+
private String phone;
14+
private String fax;
15+
private String email;
16+
private String smtpServer;
17+
private String smtpEmail;
18+
private String smtpPassword;
19+
private Integer smtpPort;
20+
private String facebook;
21+
private String instagram;
22+
private String twitter;
23+
private String aboutUs;
24+
private String contact;
25+
private String reference;
26+
private String status;
27+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.manir.springbootecommercerestapi.model;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import javax.persistence.*;
8+
9+
@AllArgsConstructor
10+
@NoArgsConstructor
11+
@Data
12+
@Entity
13+
@Table(name = "contact")
14+
public class Contact extends BaseEntity{
15+
@Id
16+
@GeneratedValue(strategy = GenerationType.IDENTITY)
17+
private Long id;
18+
private String name;
19+
private String email;
20+
private String phone;
21+
private String subject;
22+
private String message;
23+
private String ipAddress;
24+
private String status;
25+
26+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.manir.springbootecommercerestapi.model;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import javax.persistence.*;
8+
9+
@AllArgsConstructor
10+
@NoArgsConstructor
11+
@Data
12+
@Entity
13+
@Table(name = "faqs")
14+
public class Faq extends BaseEntity{
15+
@Id
16+
@GeneratedValue(strategy = GenerationType.IDENTITY)
17+
private Long id;
18+
private String question;
19+
private String answer;
20+
private String status;
21+
22+
}

0 commit comments

Comments
 (0)