Skip to main content

Swagger File | Devise Token Auth


openapi: 3.0.1
info:
title: API
consumes:
- application/json
produces:
- application/json
servers:
- url: http://localhost:3000

schemes:
- "https"
- "http"
paths:
"/auth":
post:
summary: User registration
requestBody:
content:
application/json:
schema:
$ref: "#/definitions/UserRegistrationParameters"
responses:
"200":
description: "Valid input"
content:
application/json:
example:
status: 'success'
data:
email: "testuser2@yopmail.com"
uid: "testuser2@yopmail.com"
first_name: "testuser2"
last_name: "lname"
role: "ABA Admin"
"422":
description: "Invalid input"
content:
application/json:
example:
status: 'error'
data:
uid: ""
first_name: "testuser2"
last_name: "lname"
email: "testuser2@yopmail.com"
role: "ABA Admin"
errors:
email: ["has already been taken"]
full_messages: ["Email has already been taken"]
put:
summary: User update
parameters:
- in: "header"
name: "access-token"
description: "Request headers"
required: true
- in: "header"
name: "client"
description: "Request headers"
required: true
- in: "header"
name: "uid"
description: "Request headers"
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/definitions/UserUpdateParameters"
responses:
"200":
description: "Valid input"
content:
application/json:
example:
status: 'success'
data:
email: "testuser2@yopmail.com"
uid: "testuser2@yopmail.com"
first_name: "testuser2"
last_name: "lname"
role: "ABA Admin"
"404":
description: "Invalid input"
content:
application/json:
example:
success: false
errors: [
"User not found."
]
status: "error"

"/auth/sign_in":
post:
summary: User signin
requestBody:
content:
application/json:
schema:
$ref: "#/definitions/UserSigninParameters"
responses:
"200":
description: "Valid input"
content:
application/json:
example:
data:
email: "user1@yopmail.com"
uid: "user1@yopmail.com"
name: "Mike Tyson"
"401":
description: "Invalid input"
content:
application/json:
example:
success: false
errors: ["Invalid login credentials. Please try again."]

"/auth/sign_out":
delete:
summary: User signout
parameters:
- in: "header"
name: "access-token"
description: "Request headers"
required: true
- in: "header"
name: "client"
description: "Request headers"
required: true
- in: "header"
name: "uid"
description: "Request headers"
required: true
responses:
"200":
description: "Valid input"
content:
application/json:
example:
success: true
"404":
description: "Invalid input"
content:
application/json:
example:
success: false
errors: ["User was not found or was not logged in."]

"/auth/password":
post:
summary: Password reset
requestBody:
content:
application/json:
schema:
$ref: "#/definitions/PasswordResetParameters"
responses:
"200":
description: "Valid input"
content:
application/json:
example:
success: true
message: "An email has been sent to 'user1@yopmail.com' containing instructions for resetting your password."
"404":
description: "Invalid input"
content:
application/json:
example:
success: false
errors: ["Unable to find user with email 'user1@yopmail.com1'."]
put:
summary: Password update
parameters:
- in: "header"
name: "access-token"
description: "Request headers"
required: true
- in: "header"
name: "client"
description: "Request headers"
required: true
- in: "header"
name: "uid"
description: "Request headers"
required: true
requestBody:
content:
application/json:
schema:
$ref: "#/definitions/PasswordUpdateParameters"

responses:
"200":
description: "Valid input"
content:
application/json:
example:
success: true
data:
email: "user@yopmail.com"
uid: "user@yopmail.com"
name: "Mike Tyson"
message: "Your password has been successfully updated."
"401":
description: "Invalid input"
content:
application/json:
example:
success: false
errors: ["Unauthorized"]

definitions:
UserRegistrationParameters:
type: "object"
required:
- email
- password
properties:
email:
type: "string"
password:
type: "string"

UserUpdateParameters:
type: "object"
required:
- email
properties:
email:
type: "string"

UserSigninParameters:
type: "object"
required:
- email
- password
properties:
email:
type: "string"
password:
type: "string"
PasswordResetParameters:
type: "object"
required:
- email
- redirect_url
properties:
email:
type: "string"
redirect_url:
type: "string"
description: 'for redirection, after password change'
PasswordUpdateParameters:
type: "object"
required:
- password
- password_confirmation
- current_password
properties:
password:
type: "string"
password_confirmation:
type: "string"
description: 'should be same as password'
current_password:
type: "string"
PasswordUpdateHeaders:
type: "object"
required:
- access-token
- client
- uid
properties:
access-token:
type: "string"
client:
type: "string"
uid:
type: "string"
UserSignoutHeaders:
type: "object"
required:
- access-token
- client
- uid
properties:
access-token:
type: "string"
client:
type: "string"
uid:
type: "string"

Comments

Popular posts from this blog

Why "F" and "L" suffix | (10.0F, 10L)

Let us take it this way, We will create their needs. So we will get why they are needed. Try to guess, which functions will be executed in the following program: public class MyClass {     public static void main(String args[]) {         MyClass obj = new MyClass();         obj.fun1(10);     }     void fun1(byte val){         System.out.println(val);     }     void fun1(int val){         System.out.println(val);     }     void fun1(float val){         System.out.println(val);     }     void fun1(long val){         System.out.println(val);     }     } It seems like every method is capable to run this program because 10 is still literal because It has no data type. Before Java, In previous technologies, this scenario gave an ambiguity error. But Java solves this problem by removing the concepts of literals. It means Java provide a data type immediately when these born. So here 10 is no more literal. Java provides Integer data type for it. So now it is of Integer t

Promises and Async-await in depth : Asynchronous Programming in Javascript

Promises and Asynchronous Programming One of the most powerful aspects of JavaScript is how easily it handles asynchronous programming. As a language created for the Web, JavaScript needed to be able to respond to asynchronous user interactions such as clicks and key presses from the beginning. Node.js further popularized asynchronous programming in JavaScript by using callbacks as an alternative to events. As more and more programs started using asynchronous programming, events and callbacks were no longer powerful enough to support everything developers wanted to do.  Promises  are the solution to this problem. Promises are another option for asynchronous programming, and they work like futures and deferreds do in other languages. A promise specifies some code to be executed later (as with events and callbacks) and also explicitly indicates whether the code succeeded or failed at its job. You can chain promises together based on success or failure in ways that make your code easier t