@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api API for the COVID-19 Tracking QR Code Signin Server.
@base https://virtserver.swaggerhub.com/aijaz/QRCodeSigninServer/1.1
@version 1.1
@auth ApiKey token in header
@endpoints 14
@toc login(1), logout(1), signins(1), signin(4), verifyPasswordChange(1), changePassword(1), requestPasswordReset(1), user(3), users(1)

@group login
@endpoint POST /login
@optional {email: str, password: str, source: str(iOS/android/web)}
@returns(200) {admin: bool, login_id: int, name: str, read_only: bool, token: str}
@errors {401}

@endgroup

@group logout
@endpoint POST /logout
@returns(200)

@endgroup

@group signins
@endpoint GET /signins
@optional {less_than: int, return_count: int=100}
@returns(200)
@errors {401, 503}

@endgroup

@group signin
@endpoint POST /signin
@required {name: str, phone: str}
@optional {id: int, dt: num, email: str}
@returns(200) {result: int}
@errors {401, 503}

@endpoint GET /signin/{signinId}
@required {signinId: int}
@returns(200) {id: int, dt: num, name: str, phone: str, email: str}
@errors {401}

@endpoint PUT /signin/{signinId}
@required {signinId: int, name: str, phone: str}
@optional {id: int, dt: num, email: str}
@returns(200) {id: int, name: str, email: str, admin: bool, read_only: bool}
@errors {401}

@endpoint DELETE /signin/{signinId}
@required {signinId: int}
@returns(200)
@errors {401}

@endgroup

@group verifyPasswordChange
@endpoint POST /verifyPasswordChange
@optional {guid: str, password: str}
@returns(200)
@errors {401}

@endgroup

@group changePassword
@endpoint POST /changePassword
@optional {old_password: str, password: str}
@returns(200)
@errors {401}

@endgroup

@group requestPasswordReset
@endpoint POST /requestPasswordReset
@optional {email: str}
@returns(200) {email: str, guid: str}
@errors {401}

@endgroup

@group user
@endpoint POST /user
@optional {email: str, name: str, admin: bool, read_only: bool}
@returns(200) {email: str, guid: str}
@errors {401}

@endpoint DELETE /user/{userId}
@required {userId: int}
@returns(200)
@errors {401}

@endpoint GET /user/{userId}
@required {userId: int}
@returns(200) {id: int, name: str, email: str, admin: bool, read_only: bool}
@errors {401}

@endgroup

@group users
@endpoint GET /users
@returns(200)
@errors {401}

@endgroup

@end
