Skip to content
This repository was archived by the owner on Mar 5, 2020. It is now read-only.

Commit aa93f48

Browse files
committed
Repository binding to users
1 parent bd7af3c commit aa93f48

File tree

3 files changed

+47
-8
lines changed

3 files changed

+47
-8
lines changed

src/main/java/pl/simplemethod/codebin/githubOauth/PostLogin.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@ ResponseEntity postlogin(HttpServletResponse response, @RequestParam("code") Str
4545
githubId = githubClient.getUserInfo(token).get("id").toString();
4646
Users users = usersRepository.getFirstByGithub(Integer.valueOf(githubId));
4747
if (users == null) {
48-
usersList.add(
49-
new Users(token, Integer.valueOf(githubId), "user", null, null)
50-
);
48+
users = new Users(token, Integer.valueOf(githubId), "user", null, null);
49+
usersList.add(users);
5150
usersList.forEach(usersRepository::save);
5251
}
5352
else
@@ -57,13 +56,16 @@ ResponseEntity postlogin(HttpServletResponse response, @RequestParam("code") Str
5756
}
5857
Cookie cookie = new Cookie("token", token);
5958
cookie.setMaxAge(999999999);
59+
60+
Cookie idCookie = new Cookie("id", Integer.toString(users.getId()));
61+
idCookie.setMaxAge(999999999);
62+
63+
response.addCookie(idCookie);
6064
response.addCookie(cookie);
6165
} catch (org.json.JSONException e) {
6266
return new ResponseEntity<>(e, headers, HttpStatus.valueOf(404));
6367
}
6468

6569
return new ResponseEntity<>("<script type=\"text/javascript\">window.location.href = \"/\"</script>", headers, HttpStatus.valueOf(200));
6670
}
67-
68-
6971
}

src/main/java/pl/simplemethod/codebin/model/Users.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@
1111
@Table(name = "users")
1212
public class Users implements Serializable {
1313

14-
15-
@OneToMany()
16-
List<Containers> containers = new ArrayList<>();
1714
@Id
1815
@GeneratedValue(strategy = GenerationType.IDENTITY)
1916
@Column(name = "id")
@@ -28,6 +25,9 @@ public class Users implements Serializable {
2825
@Column(name = "role")
2926
private String role;
3027

28+
@OneToMany
29+
private List<Containers> containers = new ArrayList<>();
30+
3131
public Users() {
3232
}
3333

src/main/java/pl/simplemethod/codebin/srv/SrvRestController.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@
77
import org.springframework.http.MediaType;
88
import org.springframework.http.ResponseEntity;
99
import org.springframework.web.bind.annotation.*;
10+
import org.springframework.web.util.WebUtils;
1011
import pl.simplemethod.codebin.linkDeploy.LinkClient;
1112
import pl.simplemethod.codebin.model.Containers;
1213
import pl.simplemethod.codebin.model.Images;
14+
import pl.simplemethod.codebin.model.Users;
1315
import pl.simplemethod.codebin.repository.ContainersRepository;
1416
import pl.simplemethod.codebin.repository.ImagesRepository;
17+
import pl.simplemethod.codebin.repository.UsersRepository;
1518

19+
import javax.servlet.http.Cookie;
20+
import javax.servlet.http.HttpServletResponse;
1621
import java.time.Instant;
1722
import java.util.ArrayList;
1823
import java.util.List;
@@ -33,6 +38,9 @@ public class SrvRestController {
3338
@Autowired
3439
private LinkClient linkClient;
3540

41+
@Autowired
42+
private UsersRepository usersRepository;
43+
3644
/*
3745
@GetMapping("/createtest")
3846
public @ResponseBody
@@ -79,6 +87,35 @@ ResponseEntity createContainer(@RequestParam("dockerimage") String dockerImage,
7987
return new ResponseEntity<>(response.toString(), headers, HttpStatus.valueOf(status));
8088
}
8189

90+
@GetMapping("container/new")
91+
public @ResponseBody
92+
ResponseEntity createContainerForUser(@RequestParam("dockerimage") String dockerImage, @RequestParam("exposedports") Integer exposedPorts, @RequestParam("hostports") Integer hostPorts, @RequestParam("name") String name, @RequestParam("rammemory") Long ramMemory, @RequestParam("diskquota") Long diskQuota, @CookieValue("id") String id) {
93+
HttpHeaders headers = new HttpHeaders();
94+
headers.setContentType(MediaType.APPLICATION_JSON);
95+
org.json.JSONObject response = srvClient.createAndRunContainer(srvClient.generateCreateConfig(dockerImage, exposedPorts, hostPorts, ramMemory, diskQuota), name);
96+
int status;
97+
if (response.get("status").toString().equals("204")) {
98+
status = 200;
99+
List<Containers> containers = new ArrayList<>();
100+
Images images = imagesRepository.getFirstByName(dockerImage);
101+
Containers newContainer = new Containers(name, response.get("id").toString(), images, exposedPorts, hostPorts, ramMemory, diskQuota, "XD", 1, Instant.now().getEpochSecond());
102+
containers.add(newContainer);
103+
containers.forEach(containersRepository::save);
104+
105+
try {
106+
// TODO: 01/06/2019 oczekuje integera, a dajemy mu longa, pojebane
107+
Users users = usersRepository.getOne((long) Integer.parseInt(id));
108+
users.getContainers().add(newContainer);
109+
usersRepository.save(users);
110+
} catch (NumberFormatException e) {
111+
return new ResponseEntity<>(e.toString(), headers, HttpStatus.NOT_FOUND);
112+
}
113+
} else {
114+
status = Integer.valueOf(response.get("status").toString());
115+
}
116+
return new ResponseEntity<>(response.toString(), headers, HttpStatus.valueOf(status));
117+
}
118+
82119
/**
83120
* The method restarts the container
84121
*

0 commit comments

Comments
 (0)