usman 0.2.11 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/usman/api/v1/docs_controller.rb +84 -0
  3. data/app/controllers/usman/api/v1/profile_controller.rb +27 -2
  4. data/app/controllers/usman/api/v1/profile_picture_controller.rb +178 -0
  5. data/app/serializers/profile_picture_serializer.rb +19 -0
  6. data/app/serializers/profile_serializer.rb +6 -0
  7. data/app/uploaders/feature_image_uploader.rb +1 -0
  8. data/app/uploaders/profile_picture_uploader.rb +4 -0
  9. data/app/views/kuppayam/api/docs/_navigation.html.erb +24 -0
  10. data/app/views/usman/api/v1/docs/base64_profile_picture/_neg_case_1.html.erb +27 -0
  11. data/app/views/usman/api/v1/docs/base64_profile_picture/_neg_case_2.html.erb +28 -0
  12. data/app/views/usman/api/v1/docs/base64_profile_picture/_pos_case_1.html.erb +36 -0
  13. data/app/views/usman/api/v1/docs/create_profile/_pos_case_1.html.erb +15 -14
  14. data/app/views/usman/api/v1/docs/destroy_profile_picture/_neg_case_1.html.erb +27 -0
  15. data/app/views/usman/api/v1/docs/destroy_profile_picture/_neg_case_2.html.erb +27 -0
  16. data/app/views/usman/api/v1/docs/destroy_profile_picture/_pos_case_1.html.erb +27 -0
  17. data/app/views/usman/api/v1/docs/profile/_neg_case_1.html.erb +34 -0
  18. data/app/views/usman/api/v1/docs/profile/_neg_case_2.html.erb +27 -0
  19. data/app/views/usman/api/v1/docs/profile/_pos_case_1.html.erb +39 -0
  20. data/app/views/usman/api/v1/docs/profile_picture/_neg_case_1.html.erb +27 -0
  21. data/app/views/usman/api/v1/docs/profile_picture/_neg_case_2.html.erb +28 -0
  22. data/app/views/usman/api/v1/docs/profile_picture/_neg_case_3.html.erb +27 -0
  23. data/app/views/usman/api/v1/docs/profile_picture/_pos_case_1.html.erb +36 -0
  24. data/app/views/usman/api/v1/docs/update_profile/_neg_case_2.html.erb +3 -10
  25. data/app/views/usman/api/v1/docs/update_profile/_neg_case_3.html.erb +1 -1
  26. data/app/views/usman/api/v1/docs/update_profile/_pos_case_1.html.erb +7 -13
  27. data/app/views/usman/api/v1/docs/verify_otp/_pos_case_2.html.erb +2 -1
  28. data/config/locales/usman/api.en.yml +20 -1
  29. data/config/routes.rb +12 -0
  30. data/lib/usman/version.rb +1 -1
  31. metadata +65 -24
  32. data/app/uploaders/image_uploader.rb +0 -90
@@ -0,0 +1,36 @@
1
+ <%
2
+
3
+ api_title = "Positive Case - 1 - should upload a profile picture in base64 format"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": true,
12
+ "alert": {
13
+ "heading": "User/Profile Image was saved successfully",
14
+ "message": "You may now use the URL to download the image in future"
15
+ },
16
+ "data": {
17
+ "id": 8,
18
+ "created_at": "21-09-2017 13:02:45",
19
+ "profile_id": 6,
20
+ "image_large_path": "/uploads/profile_pictures/8/large_profile_picture.jpg",
21
+ "image_medium_path": "/uploads/profile_pictures/8/medium_profile_picture.jpg",
22
+ "image_small_path": "/uploads/profile_pictures/8/small_profile_picture.jpg",
23
+ "image_tiny_path": "/uploads/profile_pictures/8/tiny_profile_picture.jpg"
24
+ }
25
+ }
26
+ eos
27
+
28
+ %>
29
+
30
+ <%= render partial: "kuppayam/api/docs/example", locals: {
31
+ negative_case: false,
32
+ example_id: "pos_case_1",
33
+ api_title: api_title,
34
+ api_input: api_input,
35
+ api_output: api_output
36
+ } %>
@@ -21,20 +21,21 @@ api_output = <<-eos
21
21
  "message": "You may access the profile API with API token to get the profile details in future"
22
22
  },
23
23
  "data": {
24
- "user": {
25
- "id": 8,
26
- "name": "K P Varma",
27
- "username": "4106947a",
28
- "email": "kpv@kpvarma.com",
29
- "phone": "",
30
- "designation": "",
31
- "super_admin": "",
32
- "token_created_at": "",
33
- "registration_id": "",
34
- "gender": "male",
35
- "date_of_birth": "1954-10-27"
36
- }
37
- }
24
+ "id": 9,
25
+ "name": "Nayan Tara",
26
+ "gender": "female",
27
+ "date_of_birth": "1984-10-27",
28
+ "username": "d0dca578",
29
+ "email": "nayan.tara@yopmail.com",
30
+ "phone": null
31
+ "profile_picture":
32
+ {
33
+ "id": 1,
34
+ "created_at": "22-09-2017 07:32:51",
35
+ "user_id": 1,
36
+ "image_large_path": "/uploads/profile_pictures/1/large_test.jpeg",
37
+ "image_small_path": "/uploads/profile_pictures/1/small_test.jpeg"}}
38
+ }
38
39
  }
39
40
  eos
40
41
 
@@ -0,0 +1,27 @@
1
+ <%
2
+
3
+ api_title = "Negative Case - 1 - should set proper errors if no api token"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": false,
12
+ "errors": {
13
+ "heading": "Invalid API Token",
14
+ "message": "Use the API Token you have received after accepting the terms and agreement"
15
+ }
16
+ }
17
+ eos
18
+
19
+ %>
20
+
21
+ <%= render partial: "kuppayam/api/docs/example", locals: {
22
+ negative_case: true,
23
+ example_id: "neg_case_1",
24
+ api_title: api_title,
25
+ api_input: api_input,
26
+ api_output: api_output
27
+ } %>
@@ -0,0 +1,27 @@
1
+ <%
2
+
3
+ api_title = "Negative Case - 2 - should set proper errors if the profile doesn't exists"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": false,
12
+ "errors": {
13
+ "heading": "Profile doesn't exists for the mobile number you have provided",
14
+ "message": "You are trying to create a profile once again when you already have a profile. Use Profile API with your API Token, to get your profile details and use them instead of creating a new one."
15
+ }
16
+ }
17
+ eos
18
+
19
+ %>
20
+
21
+ <%= render partial: "kuppayam/api/docs/example", locals: {
22
+ negative_case: true,
23
+ example_id: "neg_case_2",
24
+ api_title: api_title,
25
+ api_input: api_input,
26
+ api_output: api_output
27
+ } %>
@@ -0,0 +1,27 @@
1
+ <%
2
+
3
+ api_title = "Positive Case - 1 - should delete a profile picture for a user"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": true,
12
+ "alert": {
13
+ "heading": "User/Profile Image was deleted successfully",
14
+ "message": "You may use Profile Picture Upload API to add one again"
15
+ }
16
+ }
17
+ eos
18
+
19
+ %>
20
+
21
+ <%= render partial: "kuppayam/api/docs/example", locals: {
22
+ negative_case: false,
23
+ example_id: "pos_case_1",
24
+ api_title: api_title,
25
+ api_input: api_input,
26
+ api_output: api_output
27
+ } %>
@@ -0,0 +1,34 @@
1
+ <%
2
+
3
+ api_title = "Negative Case - 1 - should set proper errors if api token is not present"
4
+
5
+ api_input = <<-eos
6
+ {
7
+ "name": "Name",
8
+ "gender": "male",
9
+ "date_of_birth": "10/10/1980",
10
+ "email": "name@domain.com",
11
+ "country_id": "1",
12
+ "city_id": "2"
13
+ }
14
+ eos
15
+
16
+ api_output = <<-eos
17
+ {
18
+ "success": false,
19
+ "errors": {
20
+ "heading": "Invalid API Token",
21
+ "message": "Use the API Token you have received after accepting the terms and agreement"
22
+ }
23
+ }
24
+ eos
25
+
26
+ %>
27
+
28
+ <%= render partial: "kuppayam/api/docs/example", locals: {
29
+ negative_case: true,
30
+ example_id: "neg_case_1",
31
+ api_title: api_title,
32
+ api_input: api_input,
33
+ api_output: api_output
34
+ } %>
@@ -0,0 +1,27 @@
1
+ <%
2
+
3
+ api_title = "Negative Case - 2 - should set proper errors if the profile didn't exist"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": false,
12
+ "errors": {
13
+ "heading": "A profile doesn't exists for the mobile number you have provided",
14
+ "message": "You are trying to u a profile once again when you already have a profile. Use Profile API with your API Token, to get your profile details and use them instead of creating a new one."
15
+ }
16
+ }
17
+ eos
18
+
19
+ %>
20
+
21
+ <%= render partial: "kuppayam/api/docs/example", locals: {
22
+ negative_case: true,
23
+ example_id: "neg_case_2",
24
+ api_title: api_title,
25
+ api_input: api_input,
26
+ api_output: api_output
27
+ } %>
@@ -0,0 +1,39 @@
1
+ <%
2
+
3
+ api_title = "Positive Case - 1 - should return the profile details along with picture"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": true,
12
+ "data": {
13
+ "id": 9,
14
+ "name": "Nayan Tara",
15
+ "gender": "female",
16
+ "date_of_birth": "1984-10-27",
17
+ "username": "d0dca578",
18
+ "email": "nayan.tara@yopmail.com",
19
+ "phone": null,
20
+ "profile_picture": {
21
+ "id": 8,
22
+ "profile_id": 9,
23
+ "created_at": "21-09-2017 13:02:45",
24
+ "image_large_path": "/uploads/profile_pictures/8/large_profile_picture.jpg",
25
+ "image_small_path": "/uploads/profile_pictures/8/small_profile_picture.jpg"
26
+ }
27
+ }
28
+ }
29
+ eos
30
+
31
+ %>
32
+
33
+ <%= render partial: "kuppayam/api/docs/example", locals: {
34
+ negative_case: false,
35
+ example_id: "pos_case_1",
36
+ api_title: api_title,
37
+ api_input: api_input,
38
+ api_output: api_output
39
+ } %>
@@ -0,0 +1,27 @@
1
+ <%
2
+
3
+ api_title = "Negative Case - 1 - should set proper errors if no api token"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": false,
12
+ "errors": {
13
+ "heading": "Invalid API Token",
14
+ "message": "Use the API Token you have received after accepting the terms and agreement"
15
+ }
16
+ }
17
+ eos
18
+
19
+ %>
20
+
21
+ <%= render partial: "kuppayam/api/docs/example", locals: {
22
+ negative_case: true,
23
+ example_id: "neg_case_1",
24
+ api_title: api_title,
25
+ api_input: api_input,
26
+ api_output: api_output
27
+ } %>
@@ -0,0 +1,28 @@
1
+ <%
2
+
3
+ api_title = "Negative Case - 1 - should respond with proper errors for invalid arguments"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": false,
12
+ "errors": {
13
+ "heading": "Saving user/profile image was failed",
14
+ "message": "Make sure that the arguments are passed according to the API documentation. Please check the API Documentation for more details.",
15
+ "details": "Image can't be blank"
16
+ }
17
+ }
18
+ eos
19
+
20
+ %>
21
+
22
+ <%= render partial: "kuppayam/api/docs/example", locals: {
23
+ negative_case: true,
24
+ example_id: "neg_case_2",
25
+ api_title: api_title,
26
+ api_input: api_input,
27
+ api_output: api_output
28
+ } %>
@@ -0,0 +1,27 @@
1
+ <%
2
+
3
+ api_title = "Negative Case - 2 - should set proper errors if invalid image data is passed"
4
+
5
+ api_input = <<-eos
6
+ { "image": "<upload a file format which is not supported. e.g: csv>"}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": false,
12
+ "errors": {
13
+ "heading": "Saving user/profile image was failed",
14
+ "message": "Make sure that the arguments are passed according to the API documentation. Please check the API Documentation for more details."
15
+ }
16
+ }
17
+ eos
18
+
19
+ %>
20
+
21
+ <%= render partial: "kuppayam/api/docs/example", locals: {
22
+ negative_case: true,
23
+ example_id: "neg_case_3",
24
+ api_title: api_title,
25
+ api_input: api_input,
26
+ api_output: api_output
27
+ } %>
@@ -0,0 +1,36 @@
1
+ <%
2
+
3
+ api_title = "Positive Case - 1 - should upload a profile picture"
4
+
5
+ api_input = <<-eos
6
+ {}
7
+ eos
8
+
9
+ api_output = <<-eos
10
+ {
11
+ "success": true,
12
+ "alert": {
13
+ "heading": "User/Profile Image was saved successfully",
14
+ "message": "You may now use the URL to download the image in future"
15
+ },
16
+ "data": {
17
+ "id": 8,
18
+ "created_at": "21-09-2017 13:02:45",
19
+ "profile_picture_id" :6,
20
+ "image_large_path": "/uploads/profile_pictures/8/large_profile_picture.jpg",
21
+ "image_medium_path": "/uploads/profile_pictures/8/medium_profile_picture.jpg",
22
+ "image_small_path": "/uploads/profile_pictures/8/small_profile_picture.jpg",
23
+ "image_tiny_path": "/uploads/profile_pictures/8/tiny_profile_picture.jpg"
24
+ }
25
+ }
26
+ eos
27
+
28
+ %>
29
+
30
+ <%= render partial: "kuppayam/api/docs/example", locals: {
31
+ negative_case: false,
32
+ example_id: "pos_case_1",
33
+ api_title: api_title,
34
+ api_input: api_input,
35
+ api_output: api_output
36
+ } %>
@@ -1,23 +1,16 @@
1
1
  <%
2
2
 
3
- api_title = "Negative Case - 2 - should set proper errors if the profile already exists"
3
+ api_title = "Negative Case - 2 - should set proper errors if the profile doesn't exist"
4
4
 
5
5
  api_input = <<-eos
6
- {
7
- "name": "Name",
8
- "gender": "male",
9
- "date_of_birth": "10/10/1980",
10
- "email": "name@domain.com",
11
- "country_id": "1",
12
- "city_id": "2"
13
- }
6
+ {}
14
7
  eos
15
8
 
16
9
  api_output = <<-eos
17
10
  {
18
11
  "success": false,
19
12
  "errors": {
20
- "heading": "A profile already exists for the mobile number you have provided",
13
+ "heading": "A profile doesn't exists for the mobile number you have provided",
21
14
  "message": "You are trying to create a profile once again when you already have a profile. Use Profile API with your API Token, to get your profile details and use them instead of creating a new one."
22
15
  }
23
16
  }
@@ -10,7 +10,7 @@ api_output = <<-eos
10
10
  {
11
11
  "success": false,
12
12
  "errors": {
13
- "heading": "Creating Profile Failed",
13
+ "heading": "Updating Profile Failed",
14
14
  "message": "Check if all mandatory details are passed. Refer the error details for technical information",
15
15
  "details": {
16
16
  "name": ["can't be blank", "is too short (minimum is 3 characters)"]
@@ -21,19 +21,13 @@ api_output = <<-eos
21
21
  "message": "You may access the profile API with API token to get the profile details in future"
22
22
  },
23
23
  "data": {
24
- "user": {
25
- "id": 8,
26
- "name": "K P Varma",
27
- "username": "4106947a",
28
- "email": "kpv@kpvarma.com",
29
- "phone": "",
30
- "designation": "",
31
- "super_admin": "",
32
- "token_created_at": "",
33
- "registration_id": "",
34
- "gender": "male",
35
- "date_of_birth": "1954-10-27"
36
- }
24
+ "id": 9,
25
+ "name": "Nayan Tara",
26
+ "gender": "female",
27
+ "date_of_birth": "1984-10-27",
28
+ "username": "d0dca578",
29
+ "email": "nayan.tara@yopmail.com",
30
+ "phone": null
37
31
  }
38
32
  }
39
33
  eos