Skip to content

Commit

Permalink
add order shipment way api module
Browse files Browse the repository at this point in the history
  • Loading branch information
bahram1249 committed Jun 27, 2024
1 parent 763db45 commit b5bfeb5
Show file tree
Hide file tree
Showing 5 changed files with 172 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import {
Controller,
Get,
HttpCode,
HttpStatus,
Param,
Query,
UseGuards,
UseInterceptors,
} from '@nestjs/common';
import {
ApiBearerAuth,
ApiOperation,
ApiQuery,
ApiTags,
} from '@nestjs/swagger';
import { GetUser } from '@rahino/auth/decorator';
import { JwtGuard } from '@rahino/auth/guard';
import { User } from '@rahino/database/models/core/user.entity';
import { ListFilter } from '@rahino/query-filter';
import { JsonResponseTransformInterceptor } from '@rahino/response/interceptor';
import { PermissionGuard } from '@rahino/permission-checker/guard';
import { CheckPermission } from '@rahino/permission-checker/decorator';
import { OrderShipmentWayService } from './order-shipmentway.service';

@ApiTags('order shipment ways')
@UseGuards(JwtGuard, PermissionGuard)
@ApiBearerAuth()
@UseInterceptors(JsonResponseTransformInterceptor)
@Controller({
path: '/api/ecommerce/admin/orderShipmentWays',
version: ['1'],
})
export class OrderShipmentWayController {
constructor(private readonly service: OrderShipmentWayService) {}

// public url
@CheckPermission({
permissionSymbol: 'ecommerce.admin.ordershipmentways.getall',
})
@ApiOperation({ description: 'show all order shipment ways' })
@Get('/')
@ApiQuery({
name: 'filter',
type: ListFilter,
style: 'deepObject',
explode: true,
})
@HttpCode(HttpStatus.OK)
async findAll(@GetUser() user: User, @Query() filter: ListFilter) {
return await this.service.findAll(user, filter);
}

@CheckPermission({
permissionSymbol: 'ecommerce.admin.ordershipmentways.getone',
})
@ApiOperation({ description: 'show order shipment ways by given id' })
@Get('/:id')
@HttpCode(HttpStatus.OK)
async findById(@GetUser() user: User, @Param('id') entityId: number) {
return await this.service.findById(user, entityId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { Module } from '@nestjs/common';
import { OrderShipmentWayService } from './order-shipmentway.service';
import { SequelizeModule } from '@nestjs/sequelize';
import { User } from '@rahino/database/models/core/user.entity';
import { Permission } from '@rahino/database/models/core/permission.entity';
import { OrderShipmentWayController } from './order-shipmentway.controller';
import { ECOrderShipmentWay } from '@rahino/database/models/ecommerce-eav/ec-order-shipmentway.entity';

@Module({
imports: [SequelizeModule.forFeature([User, Permission, ECOrderShipmentWay])],
controllers: [OrderShipmentWayController],
providers: [OrderShipmentWayService],
})
export class OrderShipmentWayModule {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { Injectable } from '@nestjs/common';
import { InjectModel } from '@nestjs/sequelize';
import { User } from '@rahino/database/models/core/user.entity';
import { ECOrderShipmentWay } from '@rahino/database/models/ecommerce-eav/ec-order-shipmentway.entity';
import { ListFilter } from '@rahino/query-filter';
import { QueryOptionsBuilder } from '@rahino/query-filter/sequelize-query-builder';

@Injectable()
export class OrderShipmentWayService {
constructor(
@InjectModel(ECOrderShipmentWay)
private readonly repository: typeof ECOrderShipmentWay,
) {}
async findAll(user: User, filter: ListFilter) {
let queryBuilder = new QueryOptionsBuilder();
return {
result: await this.repository.findAll(queryBuilder.build()),
total: await this.repository.count(queryBuilder.build()),
};
}
async findById(user: User, entityId: number) {
let queryBuilder = new QueryOptionsBuilder().filter({ id: entityId });
return {
result: await this.repository.findAll(queryBuilder.build()),
};
}
}
2 changes: 2 additions & 0 deletions apps/e-commerce/src/e-commerce.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ import { ProductCommentModule } from './product-comment/product-comment.module';
import { AdminProductCommentModule } from './admin/product-comment/product-comment.module';
import { ProductCommentStatusModule } from './admin/product-comment-status/product-comment-status.module';
import { OrderStatusModule } from './admin/order-status/order-status.module';
import { OrderShipmentWayModule } from './admin/order-shipmentway/order-shipmentway.module';

@Module({
imports: [
Expand Down Expand Up @@ -142,6 +143,7 @@ import { OrderStatusModule } from './admin/order-status/order-status.module';
AdminProductCommentModule,
ProductCommentStatusModule,
OrderStatusModule,
OrderShipmentWayModule,
],
providers: [
{
Expand Down
66 changes: 66 additions & 0 deletions apps/main/src/sql/core-v1.sql
Original file line number Diff line number Diff line change
Expand Up @@ -14152,6 +14152,72 @@ GO



-- ecommerce/admin/ordershipmentways
IF NOT EXISTS ((SELECT 1 FROM Migrations WHERE version = 'CORE-Permissions-Data-v57'
))
AND EXISTS (
SELECT 1 FROM Settings WHERE 1=1
AND ([key] = 'SITE_NAME' AND [value] IN ('ecommerce'))
)
BEGIN

DECLARE @roleId int = (SELECT TOP 1 id FROM Roles WHERE static_id = 1)
DECLARE @userId bigint = (SELECT TOP 1 id FROM Users WHERE static_id = 1)

DECLARE @GroupTemp TABLE (
gorupId int
);

DECLARE @groupId int = null;

DECLARE @entityName nvarchar(256) = N'OrderShipmentWays'
DECLARE @groupName nvarchar(256) = N'ecommerce.admin.ordershipmentways'


DECLARE @permissionSymbolGetAll nvarchar(512) = @groupName + '.getall';
DECLARE @permissionSymbolGetOne nvarchar(512) = @groupName + '.getone';



-- permission groups
INSERT INTO PermissionGroups(permissionGroupName, [visibility], createdAt, updatedAt)
OUTPUT inserted.id INTO @GroupTemp(gorupId)
SELECT @groupName, 1, GETDATE(), GETDATE();

SELECT @groupId = gorupId FROM @GroupTemp


-- permissions


DECLARE @PermissionTemp TABLE (
permissionId int
);

INSERT INTO Permissions(permissionName ,permissionSymbol,permissionGroupId, createdAt, updatedAt)
OUTPUT inserted.id INTO @PermissionTemp(permissionId)
SELECT 'GETALL_' + @entityName, @permissionSymbolGetAll, @groupId, GETDATE(), GETDATE()

INSERT INTO Permissions(permissionName ,permissionSymbol,permissionGroupId, createdAt, updatedAt)
OUTPUT inserted.id INTO @PermissionTemp(permissionId)
SELECT 'GETONE_' + @entityName, @permissionSymbolGetOne, @groupId, GETDATE(), GETDATE()


-- CRUD THIS Enity FOR super-admin
INSERT INTO RolePermissions(roleId, permissionId, createdAt, updatedAt)
SELECT @roleId, permissionId, GETDATE(), GETDATE()
FROM @PermissionTemp

DELETE FROM @PermissionTemp


INSERT INTO Migrations(version, createdAt, updatedAt)
SELECT 'CORE-Permissions-Data-v57', GETDATE(), GETDATE()
END

GO



-- period types
IF NOT EXISTS (SELECT 1 FROM Migrations WHERE version = 'PCMPeriodTypes-Data-v1'
Expand Down

0 comments on commit b5bfeb5

Please sign in to comment.