working on various components of the documentation
This commit is contained in:
@@ -4,7 +4,10 @@
|
|||||||
- [x] Installation
|
- [x] Installation
|
||||||
- [x] Database usage
|
- [x] Database usage
|
||||||
- [x] Authorization usage
|
- [x] Authorization usage
|
||||||
- [ ] LogicResult usage
|
- [x] LogicResult usage
|
||||||
- [ ] Repositories usage
|
- [x] Repositories usage
|
||||||
- [ ] AuthService usage
|
- [x] AuthService usage
|
||||||
|
- [x] AuthMiddleware usage
|
||||||
- [ ] AdminPages usage
|
- [ ] AdminPages usage
|
||||||
|
- [ ] Endpoints usage
|
||||||
|
- [ ] Blazor pages usage
|
||||||
|
|||||||
0
docs/api/endpoints.md
Normal file
0
docs/api/endpoints.md
Normal file
@@ -1,5 +1,5 @@
|
|||||||
# Ho to use the Web API version
|
# Ho to use the Web API version
|
||||||
This Installation adds all HopFrame [endpoints](./endpoints.md) and [services](./services.md) to the application.
|
This Installation adds all HopFrame [endpoints](./endpoints.md) and [repositories](../repositories.md) to the application.
|
||||||
|
|
||||||
1. Add the HopFrame.Api library to your project:
|
1. Add the HopFrame.Api library to your project:
|
||||||
|
|
||||||
|
|||||||
33
docs/api/logicresults.md
Normal file
33
docs/api/logicresults.md
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# LogicResults
|
||||||
|
LogicResults provide another layer of abstraction above the ActionResults.
|
||||||
|
They help you sending the right `HttpStatusCode` with the right data.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
1. Create an endpoint that returns an `ActionResult`:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
[HttpGet("hello")]
|
||||||
|
public ActionResult<string> Hello() {
|
||||||
|
return new ActionResult<string>("Hello, World!");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
2. Now instead of directly returning the `ActionResult`, return a `LogicResult`
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
[HttpGet("hello")]
|
||||||
|
public ActionResult<string> Hello() {
|
||||||
|
return LogicResult<string>.Ok("Hello, World!");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
3. This allows you to very easily change the return type by simply calling the right function
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
[HttpGet("hello")]
|
||||||
|
public ActionResult<string> Hello() {
|
||||||
|
if (!Auth.IsLoggedIn)
|
||||||
|
return LogicResult<string>.Forbidden();
|
||||||
|
|
||||||
|
return LogicResult<string>.Ok("Hello, World!");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
**Hint:** You can also provide an error message for status codes that are not in the 200 range.
|
||||||
2
docs/blazor/admin.md
Normal file
2
docs/blazor/admin.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# HopFrame Admin Pages
|
||||||
|
|
||||||
20
docs/blazor/auth.md
Normal file
20
docs/blazor/auth.md
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Auth Service
|
||||||
|
The `IAuthService` provides some useful methods to handle user authentication (login/register).
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Simply define the `IAuthService` as a dependency
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public interface IAuthService {
|
||||||
|
Task Register(UserRegister register);
|
||||||
|
Task<bool> Login(UserLogin login);
|
||||||
|
Task Logout();
|
||||||
|
|
||||||
|
Task<Token> RefreshLogin();
|
||||||
|
Task<bool> IsLoggedIn();
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## Automatically refresh user sessions
|
||||||
|
1. Make sure you have implementented the `AuthMiddleware` how it's described in step 5 of the [installation](./installation.md).
|
||||||
|
|
||||||
|
2. After that, the access token of the user gets automatically refreshed as long as the refresh token is valid.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
## How to use the Blazor API
|
## How to use the Blazor API
|
||||||
This Installation adds all HopFrame [pages](./pages.md) and [services](./services.md) to the application.
|
This Installation adds all HopFrame [pages](./pages.md) and [repositories](../repositories.md) to the application.
|
||||||
|
|
||||||
1. Add the HopFrame.Web library to your project
|
1. Add the HopFrame.Web library to your project
|
||||||
|
|
||||||
|
|||||||
0
docs/blazor/pages.md
Normal file
0
docs/blazor/pages.md
Normal file
75
docs/repositories.md
Normal file
75
docs/repositories.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# HopFrame Repositories
|
||||||
|
The HopFrame provies repositories for the various build in database models as an abstraction around the `HopDbContext` to ensure, that the data is proccessed and saved correctly.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
The repositories can also be used by simply defining them as a dependency in your service / controller.
|
||||||
|
|
||||||
|
### User Repository
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public interface IUserRepository {
|
||||||
|
Task<IList<User>> GetUsers();
|
||||||
|
|
||||||
|
Task<User> GetUser(Guid userId);
|
||||||
|
|
||||||
|
Task<User> GetUserByEmail(string email);
|
||||||
|
|
||||||
|
Task<User> GetUserByUsername(string username);
|
||||||
|
|
||||||
|
Task<User> AddUser(User user);
|
||||||
|
|
||||||
|
Task UpdateUser(User user);
|
||||||
|
|
||||||
|
Task DeleteUser(User user);
|
||||||
|
|
||||||
|
Task<bool> CheckUserPassword(User user, string password);
|
||||||
|
|
||||||
|
Task ChangePassword(User user, string password);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Group Repository
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public interface IGroupRepository {
|
||||||
|
Task<IList<PermissionGroup>> GetPermissionGroups();
|
||||||
|
|
||||||
|
Task<IList<PermissionGroup>> GetDefaultGroups();
|
||||||
|
|
||||||
|
Task<IList<PermissionGroup>> GetUserGroups(User user);
|
||||||
|
|
||||||
|
Task<PermissionGroup> GetPermissionGroup(string name);
|
||||||
|
|
||||||
|
Task EditPermissionGroup(PermissionGroup group);
|
||||||
|
|
||||||
|
Task<PermissionGroup> CreatePermissionGroup(PermissionGroup group);
|
||||||
|
|
||||||
|
Task DeletePermissionGroup(PermissionGroup group);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Permission Repository
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public interface IPermissionRepository {
|
||||||
|
Task<bool> HasPermission(IPermissionOwner owner, params string[] permissions);
|
||||||
|
|
||||||
|
Task<Permission> AddPermission(IPermissionOwner owner, string permission);
|
||||||
|
|
||||||
|
Task RemovePermission(IPermissionOwner owner, string permission);
|
||||||
|
|
||||||
|
Task<IList<string>> GetFullPermissions(IPermissionOwner owner);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Token Repository
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
public interface ITokenRepository {
|
||||||
|
Task<Token> GetToken(string content);
|
||||||
|
|
||||||
|
Task<Token> CreateToken(int type, User owner);
|
||||||
|
|
||||||
|
Task DeleteUserTokens(User owner);
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user