Skip to content

Commit 619ffff

Browse files
committed
first commit
0 parents  commit 619ffff

File tree

11 files changed

+358
-0
lines changed

11 files changed

+358
-0
lines changed

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
bin
2+
target
3+
.classpath
4+
.project
5+
.settings
6+
src/main/webapp/META-INF
7+
.idea
8+
*.iml

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
placeholder

app.properties

Whitespace-only changes.

pom.xml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<groupId>com.levent.consultantapi</groupId>
6+
<artifactId>consultant-api</artifactId>
7+
<packaging>jar</packaging>
8+
<version>1.0-SNAPSHOT</version>
9+
<name>consultant-api</name>
10+
<url>http://maven.apache.org</url>
11+
12+
<properties>
13+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14+
</properties>
15+
16+
<!-- Spring Parent Project -->
17+
<parent>
18+
<groupId>org.springframework.boot</groupId>
19+
<artifactId>spring-boot-starter-parent</artifactId>
20+
<version>1.3.1.RELEASE</version>
21+
</parent>
22+
23+
<dependencies>
24+
25+
<!-- Spring boot starter web: integrates and auto-configures -->
26+
<dependency>
27+
<groupId>org.springframework.boot</groupId>
28+
<artifactId>spring-boot-starter-web</artifactId>
29+
</dependency>
30+
31+
<dependency>
32+
<groupId>junit</groupId>
33+
<artifactId>junit</artifactId>
34+
<scope>test</scope>
35+
</dependency>
36+
37+
</dependencies>
38+
39+
<build>
40+
<plugins>
41+
<plugin>
42+
<groupId>org.apache.maven.plugins</groupId>
43+
<artifactId>maven-compiler-plugin</artifactId>
44+
<configuration>
45+
<source>1.8</source>
46+
<target>1.8</target>
47+
</configuration>
48+
</plugin>
49+
<plugin>
50+
<groupId>org.apache.maven.plugins</groupId>
51+
<artifactId>maven-shade-plugin</artifactId>
52+
<executions>
53+
<execution>
54+
<phase>package</phase>
55+
<goals>
56+
<goal>shade</goal>
57+
</goals>
58+
<configuration>
59+
<transformers>
60+
<transformer
61+
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
62+
<resource>META-INF/spring.handlers</resource>
63+
</transformer>
64+
<transformer
65+
implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
66+
<resource>META-INF/spring.factories</resource>
67+
</transformer>
68+
<transformer
69+
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
70+
<resource>META-INF/spring.schemas</resource>
71+
</transformer>
72+
<transformer
73+
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
74+
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
75+
<mainClass>com.levent.consultantapi.EntryPoint</mainClass>
76+
</transformer>
77+
</transformers>
78+
</configuration>
79+
</execution>
80+
</executions>
81+
</plugin>
82+
</plugins>
83+
</build>
84+
85+
</project>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.levent.consultantapi;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
6+
@SpringBootApplication
7+
public class EntryPoint {
8+
9+
public static void main(String[] args) {
10+
SpringApplication.run(EntryPoint.class, args);
11+
}
12+
13+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.levent.consultantapi.controller;
2+
3+
import java.util.List;
4+
5+
import org.springframework.web.bind.annotation.PathVariable;
6+
import org.springframework.web.bind.annotation.RequestBody;
7+
import org.springframework.web.bind.annotation.RequestMapping;
8+
import org.springframework.web.bind.annotation.RequestMethod;
9+
import org.springframework.web.bind.annotation.RestController;
10+
11+
import com.levent.consultantapi.model.Consultant;
12+
import com.levent.consultantapi.repository.ConsultantRepository;
13+
import com.levent.consultantapi.repository.ConsultantStubImpl;
14+
15+
@RestController
16+
@RequestMapping("api/v1/")
17+
public class ConsultantController {
18+
19+
private ConsultantRepository consultantRepository;
20+
21+
public ConsultantController() {
22+
this.consultantRepository = new ConsultantStubImpl();
23+
}
24+
25+
@RequestMapping("/")
26+
public String test() {
27+
return "ConsultantController is up and working.";
28+
}
29+
30+
@RequestMapping(value = "consultants", method = RequestMethod.GET)
31+
public List<Consultant> list() {
32+
return consultantRepository.list();
33+
}
34+
35+
// crud
36+
@RequestMapping(value = "consultants", method = RequestMethod.POST)
37+
public Consultant create(@RequestBody Consultant shipwreck) {
38+
return consultantRepository.create(shipwreck);
39+
}
40+
41+
@RequestMapping(value = "consultants/{id}", method = RequestMethod.GET)
42+
public Consultant get(@PathVariable Long id) {
43+
return consultantRepository.get(id);
44+
}
45+
46+
@RequestMapping(value = "consultants/{id}", method = RequestMethod.PUT)
47+
public Consultant update(@PathVariable Long id, @RequestBody Consultant shipwreck) {
48+
return consultantRepository.update(id, shipwreck);
49+
}
50+
51+
@RequestMapping(value = "consultants/{id}", method = RequestMethod.DELETE)
52+
public Consultant delete(@PathVariable Long id) {
53+
return consultantRepository.delete(id);
54+
}
55+
56+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package com.levent.consultantapi.model;
2+
3+
public class Consultant {
4+
5+
private Long id;
6+
private String firstName;
7+
private String lastName;
8+
private int age;
9+
private boolean isAssigned;
10+
private String client;
11+
12+
public Consultant() {}
13+
14+
public Consultant(Long id, String firstName, String lastName, int age, boolean isAssigned, String client) {
15+
this.id = id;
16+
this.firstName = firstName;
17+
this.lastName = lastName;
18+
this.age = age;
19+
this.isAssigned = isAssigned;
20+
this.client = client;
21+
}
22+
23+
public Long getId() {
24+
return id;
25+
}
26+
27+
public void setId(Long id) {
28+
this.id = id;
29+
}
30+
31+
public String getFirstName() {
32+
return firstName;
33+
}
34+
35+
public void setFirstName(String firstName) {
36+
this.firstName = firstName;
37+
}
38+
39+
public String getLastName() {
40+
return lastName;
41+
}
42+
43+
public void setLastName(String lastName) {
44+
this.lastName = lastName;
45+
}
46+
47+
public int getAge() {
48+
return age;
49+
}
50+
51+
public void setAge(int age) {
52+
this.age = age;
53+
}
54+
55+
public boolean isAssigned() {
56+
return isAssigned;
57+
}
58+
59+
public void setAssigned(boolean isAssigned) {
60+
this.isAssigned = isAssigned;
61+
}
62+
63+
public String getClient() {
64+
return client;
65+
}
66+
67+
public void setClient(String client) {
68+
this.client = client;
69+
}
70+
71+
@Override
72+
public String toString() {
73+
return String.format("Consultant Id: %s\nFirst Name: %s\nLast Name: %s\nAge: %d\nAssigned: %s\nClient: %s\n\n",
74+
id, firstName, lastName, age, isAssigned, isAssigned == true ? client : "N/A");
75+
}
76+
77+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.levent.consultantapi.repository;
2+
3+
import java.util.List;
4+
5+
import com.levent.consultantapi.model.Consultant;
6+
7+
public interface ConsultantRepository {
8+
9+
List<Consultant> list();
10+
// CRUD
11+
Consultant create(Consultant consultant);
12+
Consultant get(Long id);
13+
Consultant update(Long id, Consultant consultant);
14+
Consultant delete(Long id);
15+
16+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.levent.consultantapi.repository;
2+
3+
import java.util.ArrayList;
4+
import java.util.HashMap;
5+
import java.util.List;
6+
import java.util.Map;
7+
8+
import com.levent.consultantapi.model.Consultant;
9+
10+
public class ConsultantStubImpl implements ConsultantRepository {
11+
12+
private Map<Long, Consultant> consultants;
13+
private Long idIndex;
14+
15+
public ConsultantStubImpl() {
16+
// init
17+
consultants = new HashMap<Long, Consultant>();
18+
idIndex = 5L;
19+
20+
// populate consultants
21+
Consultant a = new Consultant(1L, "Levent", "Divilioglu", 36, false, null);
22+
consultants.put(1L, a);
23+
Consultant b = new Consultant(2L, "Hakan", "Yorukoglu", 41, true, "Kut-Tech");
24+
consultants.put(2L, b);
25+
Consultant c = new Consultant(3L, "Goktug", "Temur", 32, true, "Alfa-5");
26+
consultants.put(3L, c);
27+
Consultant d = new Consultant(4L, "Altug", "Dogan", 27, false, null);
28+
consultants.put(4L, d);
29+
Consultant e = new Consultant(5L, "Atilla", "Tanridagi", 29, true, "Kafkas-Tech");
30+
consultants.put(5L, e);
31+
}
32+
33+
public List<Consultant> list() {
34+
return new ArrayList<Consultant>(consultants.values());
35+
}
36+
37+
public Consultant create(Consultant consultant) {
38+
idIndex += idIndex;
39+
consultant.setId(idIndex);
40+
consultants.put(idIndex, consultant);
41+
return consultant;
42+
}
43+
44+
public Consultant get(Long id) {
45+
return consultants.get(id);
46+
}
47+
48+
public Consultant update(Long id, Consultant consultant) {
49+
consultants.put(id, consultant);
50+
return consultant;
51+
}
52+
53+
public Consultant delete(Long id) {
54+
return consultants.remove(id);
55+
}
56+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.levent.consultantapi.service;
2+
3+
/*
4+
* Will be deleted
5+
*/
6+
public class PlaceholderClass {
7+
8+
}

0 commit comments

Comments
 (0)