wip: usecases

This commit is contained in:
Mo
2023-05-16 07:36:25 -05:00
parent 8ffeae8642
commit ff030391a4
29 changed files with 285 additions and 164 deletions
@@ -2,10 +2,11 @@ import { GroupServiceInterface } from './../Domain/Group/Service/GroupServiceInt
import { Request, Response } from 'express'
import { BaseHttpController, controller, httpGet, httpPost, results } from 'inversify-express-utils'
import TYPES from '../Bootstrap/Types'
import { GroupUserServiceInterface } from '../Domain/GroupUser/Service/GroupUserService'
@controller('/groups')
export class GroupsController extends BaseHttpController {
constructor(private groupsService: GroupServiceInterface) {
constructor(private groupsService: GroupServiceInterface, private groupUserService: GroupUserServiceInterface) {
super()
}
@@ -23,6 +24,20 @@ export class GroupsController extends BaseHttpController {
return this.json({ group: result })
}
@httpGet('/', TYPES.AuthMiddleware)
public async getUserGroupKeys(
_request: Request,
response: Response,
): Promise<results.NotFoundResult | results.JsonResult> {
const result = await this.groupUserService.getUserGroupKeys({ userUuid: response.locals.user.uuid })
if (!result) {
return this.errorResponse(500, 'Could not get user groups')
}
return this.json({ groups: result })
}
@httpPost('/:groupUuid/users', TYPES.AuthMiddleware)
public async addUserToGroup(
request: Request,
@@ -31,8 +46,9 @@ export class GroupsController extends BaseHttpController {
const result = await this.groupsService.addUserToGroup({
groupUuid: request.params.groupUuid,
ownerUuid: response.locals.user.uuid,
inviteeUuid: request.body.inviteeUuid,
encryptedGroupKey: request.body.encryptedGroupKey,
inviteeUuid: request.body.invitee_uuid,
encryptedGroupKey: request.body.encrypted_group_key,
senderPublicKey: request.body.sender_public_key,
})
if (!result) {
@@ -42,20 +58,6 @@ export class GroupsController extends BaseHttpController {
return this.json({ groupUser: result })
}
@httpGet('/', TYPES.AuthMiddleware)
public async getUserGroups(
_request: Request,
response: Response,
): Promise<results.NotFoundResult | results.JsonResult> {
const result = await this.groupsService.getUserGroups(response.locals.user.uuid)
if (!result) {
return this.errorResponse(500, 'Could not get user groups')
}
return this.json({ groups: result })
}
private errorResponse(status: number, message?: string, tag?: string) {
return this.json(
{