Skip to content
This repository was archived by the owner on Sep 8, 2019. It is now read-only.

Commit 7ee6596

Browse files
committed
Switch back to SERIAL. (u64 support)
1 parent e6ce81e commit 7ee6596

File tree

8 files changed

+58
-57
lines changed

8 files changed

+58
-57
lines changed

backend/migrations/2019-01-13-203149_create_users/up.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
-- Your SQL goes here
22
CREATE TABLE users (
3-
id BIGINT SIGNED NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
3+
id SERIAL PRIMARY KEY,
44
first_name VARCHAR(255) NOT NULL,
55
last_name VARCHAR(255) NOT NULL,
66
banner_id INT(9) UNSIGNED NOT NULL,

backend/migrations/2019-03-08-171503_create_access/up.sql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
-- Your SQL goes here
22
CREATE TABLE access (
3-
id BIGINT SIGNED NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
3+
id SERIAL PRIMARY KEY,
44
access_name VARCHAR(255) NOT NULL
55
);
66

@@ -12,9 +12,9 @@ INSERT INTO access (access_name) VALUES
1212
("DeleteUser");
1313

1414
CREATE TABLE user_access (
15-
permission_id BIGINT SIGNED NOT NULL AUTO_INCREMENT UNIQUE PRIMARY KEY,
16-
access_id BIGINT SIGNED NOT NULL,
17-
user_id BIGINT SIGNED NOT NULL,
15+
permission_id SERIAL PRIMARY KEY,
16+
access_id BIGINT UNSIGNED NOT NULL,
17+
user_id BIGINT UNSIGNED NOT NULL,
1818
FOREIGN KEY (access_id)
1919
REFERENCES access(id)
2020
ON DELETE CASCADE

backend/src/access/models.rs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use super::schema::{access, user_access};
1717

1818
#[derive(Queryable, Serialize, Deserialize)]
1919
pub struct Access {
20-
pub id: i64,
20+
pub id: u64,
2121
pub access_name: String,
2222
}
2323

@@ -34,18 +34,18 @@ pub struct PartialAccess {
3434
}
3535

3636
pub enum AccessRequest {
37-
GetAccess(i64), //id of access name searched
37+
GetAccess(u64), //id of access name searched
3838
CreateAccess(NewAccess), //new access type of some name to be created
39-
UpdateAccess(i64, PartialAccess), //Contains id to be changed to new access_name
40-
DeleteAccess(i64), //if of access to be deleted
39+
UpdateAccess(u64, PartialAccess), //Contains id to be changed to new access_name
40+
DeleteAccess(u64), //if of access to be deleted
4141
}
4242

4343
impl AccessRequest {
4444
pub fn from_rouille(request: &rouille::Request) -> Result<AccessRequest, WebdevError> {
4545
trace!("Creating AccessRequest from {:#?}", request);
4646

4747
router!(request,
48-
(GET) (/{id: i64}) => {
48+
(GET) (/{id: u64}) => {
4949
Ok(AccessRequest::GetAccess(id))
5050
},
5151

@@ -56,14 +56,14 @@ impl AccessRequest {
5656
Ok(AccessRequest::CreateAccess(new_access))
5757
},
5858

59-
(POST) (/{id: i64}) => {
59+
(POST) (/{id: u64}) => {
6060
let request_body = request.data().ok_or(WebdevError::new(WebdevErrorKind::Format))?;
6161
let update_access: PartialAccess = serde_json::from_reader(request_body)?;
6262

6363
Ok(AccessRequest::UpdateAccess(id, update_access))
6464
},
6565

66-
(DELETE) (/{id: i64}) => {
66+
(DELETE) (/{id: u64}) => {
6767
Ok(AccessRequest::DeleteAccess(id))
6868
},
6969

@@ -94,41 +94,41 @@ impl AccessResponse {
9494

9595
#[derive(Queryable, Serialize, Deserialize)]
9696
pub struct UserAccess {
97-
pub permission_id: i64,
98-
pub access_id: i64,
99-
pub user_id: i64,
97+
pub permission_id: u64,
98+
pub access_id: u64,
99+
pub user_id: u64,
100100
pub permission_level: Option<String>,
101101
}
102102

103103
#[derive(Insertable, Serialize, Deserialize)]
104104
#[table_name = "user_access"]
105105
pub struct NewUserAccess {
106-
pub access_id: i64,
107-
pub user_id: i64,
106+
pub access_id: u64,
107+
pub user_id: u64,
108108
pub permission_level: Option<String>,
109109
}
110110

111111
#[derive(AsChangeset, Serialize, Deserialize)]
112112
#[table_name = "user_access"]
113113
pub struct PartialUserAccess {
114-
pub access_id: i64,
115-
pub user_id: i64,
114+
pub access_id: u64,
115+
pub user_id: u64,
116116
pub permission_level: Option<Option<String>>,
117117
}
118118

119119
pub struct SearchUserAccess {
120-
pub access_id: Search<i64>,
121-
pub user_id: Search<i64>,
120+
pub access_id: Search<u64>,
121+
pub user_id: Search<u64>,
122122
pub permission_level: NullableSearch<String>,
123123
}
124124

125125
pub enum UserAccessRequest {
126126
SearchAccess(SearchUserAccess), //list of users with access id or (?) name
127-
GetAccess(i64), //get individual access entry from its id
128-
CheckAccess(i64, i64), //entry allowing user of user_id to perform action of action_id
127+
GetAccess(u64), //get individual access entry from its id
128+
CheckAccess(u64, u64), //entry allowing user of user_id to perform action of action_id
129129
CreateAccess(NewUserAccess), //entry to add to database
130-
UpdateAccess(i64, PartialUserAccess), //entry to update with new information
131-
DeleteAccess(i64), //entry to delete from database
130+
UpdateAccess(u64, PartialUserAccess), //entry to update with new information
131+
DeleteAccess(u64), //entry to delete from database
132132
}
133133

134134
impl UserAccessRequest {
@@ -160,11 +160,11 @@ impl UserAccessRequest {
160160
}))
161161
},
162162

163-
(GET) (/{permission_id: i64}) => {
163+
(GET) (/{permission_id: u64}) => {
164164
Ok(UserAccessRequest::GetAccess(permission_id))
165165
},
166166

167-
(GET) (/{user_id:i64}/{access_id: i64}) => {
167+
(GET) (/{user_id:u64}/{access_id: u64}) => {
168168
Ok(UserAccessRequest::CheckAccess(user_id, access_id))
169169
},
170170

@@ -175,14 +175,14 @@ impl UserAccessRequest {
175175
Ok(UserAccessRequest::CreateAccess(new_user_access))
176176
},
177177

178-
(POST) (/{id: i64}) => {
178+
(POST) (/{id: u64}) => {
179179
let request_body = request.data().ok_or(WebdevError::new(WebdevErrorKind::Format))?;
180180
let update_user_access: PartialUserAccess = serde_json::from_reader(request_body)?;
181181

182182
Ok(UserAccessRequest::UpdateAccess(id, update_user_access))
183183
},
184184

185-
(DELETE) (/{id: i64}) => {
185+
(DELETE) (/{id: u64}) => {
186186
Ok(UserAccessRequest::DeleteAccess(id))
187187
},
188188

@@ -216,9 +216,9 @@ impl UserAccessResponse {
216216

217217
#[derive(Queryable, Serialize, Deserialize)]
218218
pub struct JoinedUserAccess {
219-
pub permission_id: i64,
220-
pub user_id: i64,
221-
pub access_id: i64,
219+
pub permission_id: u64,
220+
pub user_id: u64,
221+
pub access_id: u64,
222222
pub first_name: String,
223223
pub last_name: String,
224224
pub banner_id: u32,

backend/src/access/requests.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use diesel;
22
use diesel::types;
33
use diesel::mysql::MysqlConnection;
44
use diesel::mysql::Mysql;
5+
use diesel::mysql::types::Unsigned;
56
use diesel::query_builder::AsQuery;
67
use diesel::QueryDsl;
78
use diesel::RunQueryDsl;
@@ -49,7 +50,7 @@ pub fn handle_access(
4950
}
5051
}
5152

52-
fn get_access(id: i64, database_connection: &MysqlConnection) -> Result<Access, WebdevError> {
53+
fn get_access(id: u64, database_connection: &MysqlConnection) -> Result<Access, WebdevError> {
5354
let mut found_access = access_schema::table
5455
.filter(access_schema::id.eq(id))
5556
.load::<Access>(database_connection)?;
@@ -65,7 +66,7 @@ fn create_access(access: NewAccess, database_connection: &MysqlConnection) -> Re
6566
.values(access)
6667
.execute(database_connection)?;
6768

68-
no_arg_sql_function!(last_insert_id, types::Bigint);
69+
no_arg_sql_function!(last_insert_id, Unsigned<types::Bigint>);
6970

7071
let mut inserted_accesses = access_schema::table
7172
.filter(access_schema::id.eq(last_insert_id))
@@ -79,15 +80,15 @@ fn create_access(access: NewAccess, database_connection: &MysqlConnection) -> Re
7980
}
8081
}
8182

82-
fn update_access(id: i64, access: PartialAccess, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
83+
fn update_access(id: u64, access: PartialAccess, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
8384
diesel::update(access_schema::table)
8485
.filter(access_schema::id.eq(id))
8586
.set(&access)
8687
.execute(database_connection)?;
8788
Ok(())
8889
}
8990

90-
fn delete_access(id: i64, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
91+
fn delete_access(id: u64, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
9192
diesel::delete(access_schema::table.filter(access_schema::id.eq(id)))
9293
.execute(database_connection)?;
9394

@@ -196,7 +197,7 @@ fn search_user_access(
196197
}
197198

198199
fn get_user_access(
199-
permission_id: i64,
200+
permission_id: u64,
200201
database_connection: &MysqlConnection
201202
) -> Result<UserAccess, WebdevError> {
202203
let mut found_user_accesses = user_access_schema::table
@@ -210,8 +211,8 @@ fn get_user_access(
210211
}
211212

212213
fn check_user_access(
213-
user_id: i64,
214-
access_id: i64,
214+
user_id: u64,
215+
access_id: u64,
215216
database_connection: &MysqlConnection
216217
) -> Result<bool, WebdevError> {
217218
let found_user_accesses = user_access_schema::table
@@ -240,7 +241,7 @@ fn create_user_access(
240241
.values(user_access)
241242
.execute(database_connection)?;
242243

243-
no_arg_sql_function!(last_insert_id, types::Bigint);
244+
no_arg_sql_function!(last_insert_id, Unsigned<types::Bigint>);
244245

245246
let mut inserted_accesses = user_access_schema::table
246247
.filter(user_access_schema::permission_id.eq(last_insert_id))
@@ -255,7 +256,7 @@ fn create_user_access(
255256
}
256257

257258
fn update_user_access(
258-
id: i64,
259+
id: u64,
259260
user_access: PartialUserAccess,
260261
database_connection: &MysqlConnection
261262
) -> Result<(), WebdevError> {
@@ -267,7 +268,7 @@ fn update_user_access(
267268
Ok(())
268269
}
269270

270-
fn delete_user_access(id: i64, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
271+
fn delete_user_access(id: u64, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
271272
diesel::delete(user_access_schema::table.filter(user_access_schema::permission_id.eq(id)))
272273
.execute(database_connection)?;
273274

backend/src/access/schema.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ use crate::users::schema::users;
22

33
table! {
44
access (id) {
5-
id -> Bigint,
5+
id -> Unsigned<Bigint>,
66
access_name -> Varchar,
77
}
88
}
99

1010
table! {
1111
user_access (permission_id) {
12-
permission_id -> Bigint,
13-
access_id -> Bigint,
14-
user_id -> Bigint,
12+
permission_id -> Unsigned<Bigint>,
13+
access_id -> Unsigned<Bigint>,
14+
user_id -> Unsigned<Bigint>,
1515
permission_level -> Nullable<Varchar>,
1616
}
1717
}

backend/src/users/models.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ use crate::users::requests;
2020

2121
#[derive(Queryable, Serialize, Deserialize)]
2222
pub struct User {
23-
pub id: i64,
23+
pub id: u64,
2424
pub first_name: String,
2525
pub last_name: String,
2626
pub banner_id: u32,
@@ -59,10 +59,10 @@ pub struct UserList {
5959

6060
pub enum UserRequest {
6161
SearchUsers(SearchUser),
62-
GetUser(i64),
62+
GetUser(u64),
6363
CreateUser(NewUser),
64-
UpdateUser(i64, PartialUser),
65-
DeleteUser(i64),
64+
UpdateUser(u64, PartialUser),
65+
DeleteUser(u64),
6666
}
6767

6868
impl UserRequest {
@@ -97,7 +97,7 @@ impl UserRequest {
9797
}))
9898
},
9999

100-
(GET) (/{id: i64}) => {
100+
(GET) (/{id: u64}) => {
101101
Ok(UserRequest::GetUser(id))
102102
},
103103

@@ -108,14 +108,14 @@ impl UserRequest {
108108
Ok(UserRequest::CreateUser(new_user))
109109
},
110110

111-
(POST) (/{id: i64}) => {
111+
(POST) (/{id: u64}) => {
112112
let request_body = request.data().ok_or(WebdevError::new(WebdevErrorKind::Format))?;
113113
let update_user: PartialUser = serde_json::from_reader(request_body)?;
114114

115115
Ok(UserRequest::UpdateUser(id, update_user))
116116
},
117117

118-
(DELETE) (/{id: i64}) => {
118+
(DELETE) (/{id: u64}) => {
119119
Ok(UserRequest::DeleteUser(id))
120120
},
121121

backend/src/users/requests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ fn search_users(
117117
Ok(user_list)
118118
}
119119

120-
fn get_user(id: i64, database_connection: &MysqlConnection) -> Result<User, WebdevError> {
120+
fn get_user(id: u64, database_connection: &MysqlConnection) -> Result<User, WebdevError> {
121121
let mut found_users = users_schema::table
122122
.filter(users_schema::id.eq(id))
123123
.load::<User>(database_connection)?;
@@ -145,7 +145,7 @@ fn create_user(user: NewUser, database_connection: &MysqlConnection) -> Result<U
145145
}
146146

147147
fn update_user(
148-
id: i64,
148+
id: u64,
149149
user: PartialUser,
150150
database_connection: &MysqlConnection,
151151
) -> Result<(), WebdevError> {
@@ -156,7 +156,7 @@ fn update_user(
156156
Ok(())
157157
}
158158

159-
fn delete_user(id: i64, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
159+
fn delete_user(id: u64, database_connection: &MysqlConnection) -> Result<(), WebdevError> {
160160
diesel::delete(users_schema::table.filter(users_schema::id.eq(id)))
161161
.execute(database_connection)?;
162162

backend/src/users/schema.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
table! {
22
users (id) {
3-
id -> Bigint,
3+
id -> Unsigned<Bigint>,
44
first_name -> Varchar,
55
last_name -> Varchar,
66
banner_id -> Unsigned<Integer>,

0 commit comments

Comments
 (0)