Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
R
red-ci-cd
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
red-group-test
red-ci-cd
Commits
56ac766d
Commit
56ac766d
authored
Mar 23, 2020
by
Gladys Forte
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'product-dev' into 'product-sit'
Product dev See merge request rms/Backend/api-main-service!1020
parents
a06c967a
42f9ca73
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1066 additions
and
195 deletions
+1066
-195
app/applicationlayer/ams/asset/serializers.py
app/applicationlayer/ams/asset/serializers.py
+3
-1
app/applicationlayer/ams/asset/views.py
app/applicationlayer/ams/asset/views.py
+94
-5
app/applicationlayer/ams/asset_group/serializers.py
app/applicationlayer/ams/asset_group/serializers.py
+34
-11
app/applicationlayer/ams/asset_group/table_filters.py
app/applicationlayer/ams/asset_group/table_filters.py
+1
-1
app/applicationlayer/ams/asset_group/views.py
app/applicationlayer/ams/asset_group/views.py
+100
-12
app/applicationlayer/ams/asset_stock/views.py
app/applicationlayer/ams/asset_stock/views.py
+148
-2
app/applicationlayer/ams/asset_type/serializers.py
app/applicationlayer/ams/asset_type/serializers.py
+1
-1
app/applicationlayer/ams/asset_type/views.py
app/applicationlayer/ams/asset_type/views.py
+84
-48
app/applicationlayer/ams/audit_trail/serializers.py
app/applicationlayer/ams/audit_trail/serializers.py
+0
-0
app/applicationlayer/ams/audit_trail/table_filters.py
app/applicationlayer/ams/audit_trail/table_filters.py
+0
-0
app/applicationlayer/ams/audit_trail/views.py
app/applicationlayer/ams/audit_trail/views.py
+0
-0
app/applicationlayer/ams/report/views.py
app/applicationlayer/ams/report/views.py
+29
-13
app/applicationlayer/ams/report_type/views.py
app/applicationlayer/ams/report_type/views.py
+28
-13
app/applicationlayer/ams/urls_ams.py
app/applicationlayer/ams/urls_ams.py
+2
-2
app/applicationlayer/cms/form/header/views.py
app/applicationlayer/cms/form/header/views.py
+2
-2
app/entities/models.py
app/entities/models.py
+0
-6
app/helper/decorators.py
app/helper/decorators.py
+187
-0
requirements/RMSv2.postman_collection.json
requirements/RMSv2.postman_collection.json
+353
-78
No files found.
app/applicationlayer/ams/asset/serializers.py
View file @
56ac766d
...
...
@@ -9,7 +9,9 @@ class AMSAssetSerializer(serializers.ModelSerializer):
ret
[
'asset_type'
]
=
instance
.
asset_type
.
name
ret
[
'in_qty'
]
=
instance
.
ams_asset_to_assetdetail
.
filter
(
status
=
'In-Store'
)
.
count
()
ret
[
'out_qty'
]
=
instance
.
ams_asset_to_assetdetail
.
filter
(
status
=
'Deployed'
)
.
count
()
ret
[
'unavailable'
]
=
instance
.
ams_asset_to_assetdetail
.
filter
(
status
=
'Faulty'
)
.
count
()
ret
[
'unavailable'
]
=
instance
.
ams_asset_to_assetdetail
.
filter
(
status__in
=
[
'Faulty'
,
'Returned'
,
'Written Off'
]
)
.
count
()
ret
[
'created_by'
]
=
instance
.
created_by
.
name
return
ret
...
...
app/applicationlayer/ams/asset/views.py
View file @
56ac766d
from
app.entities.models
import
AMSAsset
from
app.entities.models
import
AMSAsset
,
AMSAssetType
from
rest_framework
import
viewsets
,
status
from
rest_framework.response
import
Response
from
django_filters
import
rest_framework
as
filters
from
django_filters.rest_framework
import
DjangoFilterBackend
from
rest_framework.filters
import
SearchFilter
,
OrderingFilter
from
app.applicationlayer.ams.asset.table_filters
import
AMSAssetFilter
from
app.applicationlayer.ams.asset_stock.serializers
import
AMSAssetStockSerializer
from
app.applicationlayer.ams.asset
import
serializers
from
django.db
import
transaction
from
app.applicationlayer.utils
import
(
...
...
@@ -13,6 +14,9 @@ from app.applicationlayer.utils import(
from
rest_framework.decorators
import
action
from
app.applicationlayer.utils
import
log_save
,
enums
from
app.applicationlayer.utils
import
model_to_dict
from
django.db
import
IntegrityError
from
django.db.models
import
Q
from
app.helper.decorators
import
AssetValidation
class
AMSAssetViewSet
(
viewsets
.
ModelViewSet
):
...
...
@@ -33,7 +37,7 @@ class AMSAssetViewSet(viewsets.ModelViewSet):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
.
filter
(
is_active
=
True
)
page
=
self
.
paginate_queryset
(
queryset
)
...
...
@@ -57,9 +61,12 @@ class AMSAssetViewSet(viewsets.ModelViewSet):
)
@
AssetValidation
@
transaction
.
atomic
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
request
.
data
form
[
'created_by'
]
=
request
.
user
.
code
serializer
=
self
.
get_serializer
(
data
=
form
)
serializer
.
is_valid
(
raise_exception
=
True
)
self
.
perform_create
(
serializer
)
...
...
@@ -73,6 +80,8 @@ class AMSAssetViewSet(viewsets.ModelViewSet):
message
)
@
AssetValidation
@
transaction
.
atomic
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
...
...
@@ -89,7 +98,7 @@ class AMSAssetViewSet(viewsets.ModelViewSet):
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMS
Repor
t
.
value
,
enums
.
LogEntitiesEnum
.
AMS
Asse
t
.
value
,
old_instance
[
'id'
],
old_instance
,
new_instance
...
...
@@ -111,11 +120,91 @@ class AMSAssetViewSet(viewsets.ModelViewSet):
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
get_object
()
self
.
perform_destroy
(
instance
)
if
instance
.
ams_asset_to_assetdetail
.
count
()
>
0
:
message
=
status_message_response
(
400
,
'Failed'
,
'This Asset had an Asset Stocks'
,
model_to_dict
(
instance
)
)
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
instance
.
is_active
=
False
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
DELETED
.
value
,
enums
.
LogEntitiesEnum
.
AMSAsset
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
#comment
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'restore'
,
url_name
=
'restore'
)
def
restore
(
self
,
request
,
code
=
None
):
try
:
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSAsset
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
message
=
status_message_response
(
200
,
'success'
,
'Archived Asset restored'
,
''
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
message
=
status_message_response
(
500
,
'failed'
,
'Request was not able to process'
+
str
(
e
),
[]
)
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
@
action
(
methods
=
[
'GET'
],
detail
=
True
,
url_path
=
'stock-list'
,
url_name
=
'stock_list'
)
def
stock_list
(
self
,
request
,
code
):
self
.
serializer_class
=
AMSAssetStockSerializer
queryset
=
self
.
get_object
()
.
ams_asset_to_assetdetail
.
all
()
page
=
self
.
paginate_queryset
(
queryset
)
if
page
is
not
None
:
serializer
=
self
.
get_serializer
(
page
,
many
=
True
)
message
=
status_message_response
(
200
,
'success'
,
'List of Archived Assets found'
,
serializer
.
data
)
return
self
.
get_paginated_response
(
message
)
serializer
=
self
.
get_serializer
(
self
.
queryset
,
many
=
True
)
return
Response
(
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
@
action
(
methods
=
[
'GET'
],
detail
=
False
,
url_path
=
'archived'
,
url_name
=
'archived'
...
...
app/applicationlayer/ams/asset_group/serializers.py
View file @
56ac766d
from
app.entities
import
models
from
rest_framework
import
serializers
from
app.applicationlayer.utils
import
model_to_dict
from
django.db.models
import
Q
class
AssetGroupSerializer
(
serializers
.
ModelSerializer
):
class
AssetGroupSerializer
List
(
serializers
.
ModelSerializer
):
def
to_representation
(
self
,
instance
):
ret
=
super
()
.
to_representation
(
instance
)
asset_stocks
=
models
.
AMSAssetStock
.
objects
.
filter
(
asset_group
=
instance
.
code
)
asset_counter
=
0
asset_type_counter
=
0
for
asset_stock
in
asset_stocks
:
asset_counter
=
asset_counter
+
models
.
AMSAsset
.
objects
.
filter
(
code
=
asset_stock
.
asset
.
code
)
.
count
()
asset_type_counter
=
asset_type_counter
+
1
ret
[
'asset_type_count'
]
=
instance
.
ams_asset_to_assetgroup
.
values
(
'asset__asset_type'
)
.
distinct
()
.
count
()
ret
[
'asset_count'
]
=
instance
.
ams_asset_to_assetgroup
.
values
(
'asset'
)
.
distinct
()
.
count
()
ret
[
'asset_stock_count'
]
=
instance
.
ams_asset_to_assetgroup
.
count
()
ret
[
'asset_type_count'
]
=
asset_type_counter
ret
[
'asset_count'
]
=
asset_counter
return
ret
class
Meta
:
model
=
models
.
AMSAssetGroup
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'code'
]
class
AssetGroupSerializer
(
serializers
.
ModelSerializer
):
def
to_representation
(
self
,
instance
):
ret
=
super
()
.
to_representation
(
instance
)
ret
[
'asset_type_count'
]
=
instance
.
ams_asset_to_assetgroup
.
values
(
'asset__asset_type'
)
.
distinct
()
.
count
()
ret
[
'asset_count'
]
=
instance
.
ams_asset_to_assetgroup
.
values
(
'asset'
)
.
distinct
()
.
count
()
ret
[
'asset_stock_count'
]
=
instance
.
ams_asset_to_assetgroup
.
count
()
ret
[
'own'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
acquisition_type
=
'Owned'
)
.
count
()
ret
[
'loan'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
acquisition_type
=
'Loan'
)
.
count
()
ret
[
'in_qty'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status
=
'In-Store'
)
.
count
()
ret
[
'out_qty'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status
=
'Deployed'
)
.
count
()
ret
[
'unavailable'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status__in
=
[
'Faulty'
,
'Returned'
,
'Written Off'
]
)
.
count
()
ret
[
'in_store'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status
=
'In-Store'
)
.
count
()
ret
[
'deployed'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status
=
'Deployed'
)
.
count
()
ret
[
'returned'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status
=
'Returned'
)
.
count
()
ret
[
'written_off'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status
=
'Written Off'
)
.
count
()
ret
[
'faulty'
]
=
instance
.
ams_asset_to_assetgroup
.
filter
(
status
=
'Faulty'
)
.
count
()
return
ret
class
Meta
:
model
=
models
.
AMSAssetGroup
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'created_by'
,
'code'
]
\ No newline at end of file
read_only_fields
=
[
'created'
,
'code'
]
\ No newline at end of file
app/applicationlayer/ams/asset_group/table_filters.py
View file @
56ac766d
...
...
@@ -6,4 +6,4 @@ class AssetGroupFilter(filters.FilterSet):
class
Meta
:
model
=
AMSAssetGroup
fields
=
'__all__'
\ No newline at end of file
fields
=
'__all__'
app/applicationlayer/ams/asset_group/views.py
View file @
56ac766d
...
...
@@ -12,10 +12,13 @@ from app.applicationlayer.utils import (
from
app.helper
import
decorators
from
django.db
import
transaction
from
rest_framework.decorators
import
action
from
app.applicationlayer.utils
import
log_save
,
enums
from
app.applicationlayer.utils
import
model_to_dict
from
app.helper.decorators
import
AssetGroupValidation
from
django.db
import
IntegrityError
class
AssetGroupViewset
(
viewsets
.
ModelViewSet
):
queryset
=
models
.
AMSAssetGroup
.
objects
.
all
()
serializer_class
=
serializers
.
AssetGroupSerializer
pagination_class
=
CustomPagination
...
...
@@ -26,28 +29,58 @@ class AssetGroupViewset(viewsets.ModelViewSet):
'code'
,
'name'
)
@
AssetGroupValidation
@
transaction
.
atomic
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
request
.
data
form
[
'created_by'
]
=
request
.
user
.
code
serializer
=
self
.
get_serializer
(
data
=
request
.
data
)
# serializer.is_valid(raise_exception=True)
serializer
=
self
.
get_serializer
(
data
=
form
)
serializer
.
is_valid
(
raise_exception
=
True
)
self
.
perform_create
(
serializer
)
if
serializer
.
is_valid
(
raise_exception
=
True
):
serializer
.
save
(
created_by
=
self
.
request
.
user
)
message
=
status_message_response
(
201
,
'success'
,
'New Asset Group created'
,
serializer
.
data
)
self
.
perform_create
(
serializer
)
message
=
status_message_response
(
201
,
'success'
,
'New Asset Group created'
,
serializer
.
data
return
Response
(
message
)
# @AssetGroupValidation
@
transaction
.
atomic
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
partial
=
kwargs
.
pop
(
'partial'
,
False
)
instance
=
self
.
get_object
()
form
=
request
.
data
form
[
'created_by'
]
=
request
.
user
.
code
serializer
=
self
.
get_serializer
(
instance
,
data
=
form
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSAssetGroup
.
value
,
old_instance
[
'id'
],
old_instance
,
new_instance
)
return
Response
(
serializer
.
data
)
except
IntegrityError
as
e
:
return
Response
(
message
{
"message"
:
"Cannot delete or update this record it has foreign key constraint to other tables"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
serializer_class
=
serializers
.
AssetGroupSerializerList
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
page
=
self
.
paginate_queryset
(
queryset
)
...
...
@@ -80,7 +113,26 @@ class AssetGroupViewset(viewsets.ModelViewSet):
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
get_object
()
self
.
perform_destroy
(
instance
)
if
instance
.
ams_asset_to_assetgroup
.
count
()
>
0
:
message
=
status_message_response
(
400
,
'Failed'
,
'This Asset Group had an Asset Stocks'
,
model_to_dict
(
instance
)
)
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
instance
.
is_active
=
False
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
DELETED
.
value
,
enums
.
LogEntitiesEnum
.
AMSAssetGroup
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
...
...
@@ -113,3 +165,39 @@ class AssetGroupViewset(viewsets.ModelViewSet):
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'restore'
,
url_name
=
'restore'
)
def
restore
(
self
,
request
,
code
=
None
):
try
:
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSAssetGroup
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
message
=
status_message_response
(
200
,
'success'
,
'Archived Asset Group restored'
,
''
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
message
=
status_message_response
(
500
,
'failed'
,
'Request was not able to process'
+
str
(
e
),
[]
)
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
app/applicationlayer/ams/asset_stock/views.py
View file @
56ac766d
...
...
@@ -11,6 +11,12 @@ from app.applicationlayer.utils import(
CustomPagination
,
status_message_response
)
from
rest_framework.decorators
import
action
from
app.applicationlayer.utils
import
log_save
,
enums
from
app.applicationlayer.utils
import
model_to_dict
from
django.db
import
IntegrityError
from
django.db.models
import
Q
from
app.helper.decorators
import
AssetStockValidation
from
django.db.models
import
Count
class
AMSAssetStockViewSet
(
viewsets
.
ModelViewSet
):
...
...
@@ -33,7 +39,7 @@ class AMSAssetStockViewSet(viewsets.ModelViewSet):
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
.
filter
(
is_active
=
True
)
page
=
self
.
paginate_queryset
(
queryset
)
...
...
@@ -55,8 +61,102 @@ class AMSAssetStockViewSet(viewsets.ModelViewSet):
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
@
action
(
detail
=
False
,
methods
=
[
'get'
],
url_path
=
'dashboard'
,
name
=
"Dashboard Summary"
)
def
dashboard_asset
(
self
,
request
):
in_store
=
self
.
queryset
.
filter
(
status__iexact
=
'In-Store'
)
.
count
()
deployed
=
self
.
queryset
.
filter
(
status__iexact
=
'Deployed'
)
.
count
()
returned
=
self
.
queryset
.
filter
(
status__iexact
=
'Returned'
)
.
count
()
written_off
=
self
.
queryset
.
filter
(
status__iexact
=
'Written Off'
)
.
count
()
faulty
=
self
.
queryset
.
filter
(
status__iexact
=
'Faulty'
)
.
count
()
in_qty
=
self
.
queryset
.
filter
(
status__iexact
=
'In-Store'
)
.
count
()
out_qty
=
self
.
queryset
.
filter
(
status__iexact
=
'Deployed'
)
.
count
()
unavailable
=
self
.
queryset
.
filter
(
status__iexact
=
[
'Faulty'
,
'Returned'
,
'Written Off'
]
)
.
count
()
top_asset_groups
=
self
.
queryset
.
values
(
'asset_group__name'
,
'asset_group'
,
'asset'
)
.
annotate
(
asset_type_count
=
Count
(
'asset__asset_type'
),
asset_count
=
Count
(
'asset'
),
asset_stock_count
=
Count
(
'asset_group'
))
.
order_by
(
'-asset_group'
)
recent_reports
=
0
message
=
{
'in_store'
:
in_store
,
'deployed'
:
deployed
,
'returned'
:
returned
,
'written_off'
:
written_off
,
'faulty'
:
faulty
,
'in_qty'
:
in_qty
,
'out_qty'
:
out_qty
,
'unavailable'
:
unavailable
,
'top_asset_groups'
:
top_asset_groups
,
'recent_reports'
:
recent_reports
,
'code'
:
200
,
'status'
:
'success'
,
'message'
:
'Dashboard Summary'
}
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
@
AssetStockValidation
@
transaction
.
atomic
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
partial
=
kwargs
.
pop
(
'partial'
,
False
)
instance
=
self
.
get_object
()
form
=
request
.
data
form
[
'created_by'
]
=
request
.
user
.
code
serializer
=
self
.
get_serializer
(
instance
,
data
=
form
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSReport
.
value
,
old_instance
[
'id'
],
old_instance
,
new_instance
)
return
Response
(
serializer
.
data
)
except
IntegrityError
as
e
:
return
Response
(
{
"message"
:
"Cannot delete or update this reocrd it has foreign key constraint to other tables"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
@
AssetStockValidation
@
transaction
.
atomic
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
...
...
@@ -83,7 +183,17 @@ class AMSAssetStockViewSet(viewsets.ModelViewSet):
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
get_object
()
self
.
perform_destroy
(
instance
)
instance
.
is_active
=
False
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSAssetStock
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
...
...
@@ -116,3 +226,39 @@ class AMSAssetStockViewSet(viewsets.ModelViewSet):
serializer
.
data
,
status
=
status
.
HTTP_200_OK
)
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'restore'
,
url_name
=
'restore'
)
def
restore
(
self
,
request
,
code
=
None
):
try
:
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSAssetStock
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
message
=
status_message_response
(
200
,
'success'
,
'Archived Asset Stock restored'
,
''
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
message
=
status_message_response
(
500
,
'failed'
,
'Request was not able to process'
+
str
(
e
),
[]
)
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
app/applicationlayer/ams/asset_type/serializers.py
View file @
56ac766d
...
...
@@ -22,4 +22,4 @@ class AssetTypeSerializer(serializers.ModelSerializer):
class
Meta
:
model
=
models
.
AMSAssetType
fields
=
'__all__'
read_only_fields
=
[
'created'
,
'created_by'
,
'code'
]
\ No newline at end of file
read_only_fields
=
[
'created'
,
'code'
]
\ No newline at end of file
app/applicationlayer/ams/asset_type/views.py
View file @
56ac766d
...
...
@@ -13,8 +13,10 @@ from app.helper import decorators
from
django.db
import
transaction
from
rest_framework.decorators
import
action
from
app.applicationlayer.utils
import
model_to_dict
from
app.applicationlayer.utils
import
log_save
from
app.entities
import
enums
from
app.applicationlayer.utils
import
log_save
,
enums
from
app.applicationlayer.utils
import
model_to_dict
from
app.helper.decorators
import
AssetTypeValidation
from
django.db
import
IntegrityError
class
AssetTypeViewset
(
viewsets
.
ModelViewSet
):
...
...
@@ -29,47 +31,61 @@ class AssetTypeViewset(viewsets.ModelViewSet):
'code'
,
'name'
)
@
AssetTypeValidation
@
transaction
.
atomic
def
create
(
self
,
request
,
*
args
,
**
kwargs
):
serializer
=
self
.
get_serializer
(
data
=
request
.
data
)
# serializer.is_valid(raise_exception=True)
form
=
request
.
data
form
[
'created_by'
]
=
request
.
user
.
code
# if requestor == poc:
# message = {
# 'code': 400,
# 'status': 'failed',
# 'message': 'Cannot assign same user on point of contact and requestor',
# }
# return Response(message, status=status.HTTP_400_BAD_REQUEST)
if
serializer
.
is_valid
(
raise_exception
=
True
):
serializer
.
save
(
created_by
=
self
.
request
.
user
)
self
.
perform_create
(
serializer
)
serializer
=
self
.
get_serializer
(
data
=
form
)
serializer
.
is_valid
(
raise_exception
=
True
)
self
.
perform_create
(
serializer
)
message
=
status_message_response
(
201
,
'success'
,
'New Asset Type created'
,
serializer
.
data
message
=
status_message_response
(
201
,
'success'
,
'New Asset Type created'
,
serializer
.
data
)
return
Response
(
message
)
# @AssetTypeValidation
@
transaction
.
atomic
def
update
(
self
,
request
,
*
args
,
**
kwargs
):
try
:
partial
=
kwargs
.
pop
(
'partial'
,
False
)
instance
=
self
.
get_object
()
form
=
request
.
data
form
[
'created_by'
]
=
request
.
user
.
code
serializer
=
self
.
get_serializer
(
instance
,
data
=
form
,
partial
=
partial
)
serializer
.
is_valid
(
raise_exception
=
True
)
old_instance
=
model_to_dict
(
instance
)
self
.
perform_update
(
serializer
)
new_instance
=
serializer
.
data
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSAsset
.
value
,
old_instance
[
'id'
],
old_instance
,
new_instance
)
return
Response
(
serializer
.
data
)
except
IntegrityError
as
e
:
return
Response
(
message
{
"message"
:
"Cannot delete or update this record it has foreign key constraint to other tables"
},
status
=
status
.
HTTP_400_BAD_REQUEST
)
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
queryset
=
self
.
filter_queryset
(
self
.
get_queryset
())
# queryset = models.AMSAssetType.objects.annotate(
# view_count=Sum(
# When(relations_item__has_viewed=True, then=1),
# output_field=IntegerField(),
# ),
# love_count=Sum(
# When(relations_item__has_loved=True, then=1),
# output_field=IntegerField(),
# ),
# )
page
=
self
.
paginate_queryset
(
queryset
)
if
page
is
not
None
:
...
...
@@ -100,17 +116,26 @@ class AssetTypeViewset(viewsets.ModelViewSet):
def
destroy
(
self
,
request
,
*
args
,
**
kwargs
):
instance
=
self
.
get_object
()
if
instance
.
ams_asset_type
.
count
()
>
0
:
message
=
status_message_response
(
400
,
'Failed'
,
'This Asset Type had an Assets'
,
model_to_dict
(
instance
)
)
return
Response
(
message
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
instance
.
is_active
=
False
instance
.
save
()
#
new_instance = model_to_dict(instance)
#
log_save(
#
enums.LogEnum.DELETED.value,
# enums.LogEntitiesEnum.
,
#
new_instance['id'],
#
new_instance,
#
''
#
)
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
DELETED
.
value
,
enums
.
LogEntitiesEnum
.
AMSAssetType
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
...
...
@@ -144,15 +169,26 @@ class AssetTypeViewset(viewsets.ModelViewSet):
status
=
status
.
HTTP_200_OK
)
#restore archived asset_type
def
partial_update
(
self
,
request
,
*
args
,
**
kwargs
):
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'restore'
,
url_name
=
'restore'
)
def
restore
(
self
,
request
,
code
=
None
):
try
:
kwargs
[
'partial'
]
=
True
code
=
self
.
kwargs
[
'code'
]
instance
=
models
.
AMSAssetType
.
objects
.
filter
(
code
=
code
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSAssetType
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
instance
.
update
(
is_active
=
True
)
message
=
status_message_response
(
200
,
'success'
,
'Archived Asset Type restored'
,
...
...
@@ -160,7 +196,7 @@ class AssetTypeViewset(viewsets.ModelViewSet):
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
message
=
status_message_response
(
500
,
'failed'
,
...
...
app/applicationlayer/ams/audit_trail/serializers.py
0 → 100644
View file @
56ac766d
app/applicationlayer/ams/audit_trail/table_filters.py
0 → 100644
View file @
56ac766d
app/applicationlayer/ams/audit_trail/views.py
0 → 100644
View file @
56ac766d
app/applicationlayer/ams/report/views.py
View file @
56ac766d
...
...
@@ -167,17 +167,33 @@ class AMSReportViewset(viewsets.ModelViewSet):
url_path
=
'restore'
,
url_name
=
'restore'
)
def
restore
(
self
,
request
,
code
=
None
):
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSReport
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
try
:
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSReport
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
message
=
status_message_response
(
200
,
'success'
,
'Archived Report restored'
,
''
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
message
=
status_message_response
(
500
,
'failed'
,
'Request was not able to process'
+
str
(
e
),
[]
)
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
app/applicationlayer/ams/report_type/views.py
View file @
56ac766d
...
...
@@ -160,23 +160,38 @@ class AMSReportTypeViewset(viewsets.ModelViewSet):
status
=
status
.
HTTP_200_OK
)
@
action
(
methods
=
[
'PATCH'
],
detail
=
True
,
url_path
=
'restore'
,
url_name
=
'restore'
)
def
restore
(
self
,
request
,
code
=
None
):
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSReportType
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
try
:
instance
=
self
.
get_object
()
instance
.
is_active
=
True
instance
.
save
()
new_instance
=
model_to_dict
(
instance
)
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
log_save
(
enums
.
LogEnum
.
UPDATE
.
value
,
enums
.
LogEntitiesEnum
.
AMSReportType
.
value
,
new_instance
[
'id'
],
new_instance
,
''
)
message
=
status_message_response
(
200
,
'success'
,
'Archived Report Type restored'
,
''
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
except
Exception
as
e
:
message
=
status_message_response
(
500
,
'failed'
,
'Request was not able to process'
+
str
(
e
),
[]
)
return
Response
(
message
,
status
=
status
.
HTTP_500_INTERNAL_SERVER_ERROR
)
app/applicationlayer/ams/urls_ams.py
View file @
56ac766d
...
...
@@ -17,8 +17,8 @@ router = routers.DefaultRouter()
router
.
register
(
r'asset-group'
,
assetgroup
.
AssetGroupViewset
)
router
.
register
(
r'asset-type'
,
assettype
.
AssetTypeViewset
)
router
.
register
(
r'ams-privilege'
,
amsprivilege
.
AMSPrivilegeViewSet
)
router
.
register
(
r'asset
s
'
,
AMSAssetViewSet
)
router
.
register
(
r'asset
s-stock-list
'
,
AMSAssetStockViewSet
)
router
.
register
(
r'asset'
,
AMSAssetViewSet
)
router
.
register
(
r'asset
-stock
'
,
AMSAssetStockViewSet
)
router
.
register
(
r'report-type'
,
AMSReportTypeViewset
)
router
.
register
(
r'report'
,
AMSReportViewset
)
...
...
app/applicationlayer/cms/form/header/views.py
View file @
56ac766d
...
...
@@ -111,7 +111,7 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
"requested_to_user__name"
,
"requested_to_template_name"
,
"requested_to_objective"
,
"requested_to_priority"
,
"description"
)
# comment
def
list
(
self
,
request
,
*
args
,
**
kwargs
):
self
.
serializer_class
=
ChangeRequestFormHeaderSerializerList
...
...
@@ -236,7 +236,7 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
'message'
:
'Dashboard Summary'
}
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
return
Response
(
message
,
status
=
status
.
HTTP_200_OK
)
@
action
(
detail
=
False
,
methods
=
[
'get'
],
...
...
app/entities/models.py
View file @
56ac766d
...
...
@@ -1286,7 +1286,6 @@ class AMSAssetGroup(models.Model):
related_name
=
'ams_asset_group_created_by'
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active
=
models
.
BooleanField
(
default
=
True
)
class
Meta
:
...
...
@@ -1325,7 +1324,6 @@ class AMSAssetType(models.Model):
related_name
=
'ams_asset_type_created_by'
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active
=
models
.
BooleanField
(
default
=
True
)
class
Meta
:
...
...
@@ -1360,7 +1358,6 @@ class AMSAsset(models.Model):
to_field
=
'code'
,
related_name
=
'ams_asset_type'
)
# asset_type = models.ManyToManyField(AMSAssetType)
description
=
models
.
CharField
(
blank
=
True
,
null
=
True
,
...
...
@@ -1372,7 +1369,6 @@ class AMSAsset(models.Model):
related_name
=
'ams_asset_created_by'
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active
=
models
.
BooleanField
(
default
=
True
)
class
Meta
:
...
...
@@ -1443,7 +1439,6 @@ class AMSAssetStock(models.Model):
related_name
=
'ams_asset_to_assetgroup'
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active
=
models
.
BooleanField
(
default
=
True
)
class
Meta
:
...
...
@@ -1489,7 +1484,6 @@ class AMSAssetStockSupport(models.Model):
to_field
=
'code'
)
created
=
models
.
DateTimeField
(
auto_now_add
=
True
)
# deleted_at = models.DateTimeField(null=True, blank=True)
is_active
=
models
.
BooleanField
(
default
=
True
)
class
Meta
:
...
...
app/helper/decorators.py
View file @
56ac766d
...
...
@@ -18,6 +18,7 @@ from app.businesslayer.changerequest.change_request_template import (
validation_vendor_unique_level
)
from
app.applicationlayer.utils
import
error_message
from
app.entities
import
models
def
error_safe
(
function
):
...
...
@@ -414,3 +415,189 @@ def FormValidation(function):
return
function
(
self
,
request
,
*
args
,
**
kwargs
)
return
wrapper
def
AssetValidation
(
function
):
@
wraps
(
function
)
def
wrapper
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
request
.
data
if
'name'
not
in
form
:
return
error_message
(
'400'
,
"The key name is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
if
len
(
form
[
'name'
])
==
0
:
return
error_message
(
'400'
,
"Asset name is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
check_existing
=
models
.
AMSAsset
.
objects
.
filter
(
name
=
form
[
'name'
])
.
count
()
if
check_existing
>=
1
:
return
error_message
(
'400'
,
"Asset with this name already exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
if
'asset_type'
not
in
form
:
return
error_message
(
'400'
,
"The key asset_type is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
valid_asset_type
=
models
.
AMSAssetType
.
objects
.
filter
(
Q
(
code
=
form
[
'asset_type'
])
&
Q
(
is_active
=
True
)
)
.
count
()
if
valid_asset_type
<=
0
:
return
error_message
(
'400'
,
"Invalid Asset Type"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
return
function
(
self
,
request
,
*
args
,
**
kwargs
)
return
wrapper
def
AssetStockValidation
(
function
):
@
wraps
(
function
)
def
wrapper
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
request
.
data
fields
=
[
"asset_type"
]
fields
.
append
(
"unique_identifier"
)
fields
.
append
(
"status"
)
fields
.
append
(
"acquisition_type"
)
fields
.
append
(
"location"
)
fields
.
append
(
"user_client"
)
fields
.
append
(
"manager"
)
fields
.
append
(
"dynamic_field"
)
fields
.
append
(
"asset_group"
)
fields
.
append
(
"asset"
)
print
(
fields
)
for
data
in
fields
:
if
str
(
data
)
not
in
form
:
return
error_message
(
'400'
,
f
"The key {data.replace('_', ' ')} is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
for
data
in
form
.
keys
():
if
str
(
data
)
!=
'dynamic_field'
:
if
len
(
data
)
==
0
:
return
error_message
(
'400'
,
f
"{data.replace('_', ' ')} is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
unique_identifier
=
models
.
AMSAssetStock
.
objects
.
filter
(
unique_identifier
=
form
[
'unique_identifier'
]
)
.
count
()
if
unique_identifier
>=
1
:
return
error_message
(
'400'
,
"unique identifier already exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
user_client
=
models
.
User
.
objects
.
filter
(
code
=
form
[
'user_client'
]
)
.
count
()
if
user_client
<=
0
:
return
error_message
(
'400'
,
"User does not exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
manager
=
models
.
User
.
objects
.
filter
(
code
=
form
[
'manager'
]
)
.
count
()
if
manager
<=
0
:
return
error_message
(
'400'
,
"User for manager does not exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
asset
=
models
.
AMSAsset
.
objects
.
filter
(
code
=
form
[
'asset'
]
)
.
count
()
if
asset
<=
0
:
return
error_message
(
'400'
,
"Asset does not exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
asset_group
=
models
.
AMSAssetGroup
.
objects
.
filter
(
code
=
form
[
'asset_group'
]
)
.
count
()
if
asset_group
<=
0
:
return
error_message
(
'400'
,
"Asset Group does not exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
valid_asset_type
=
models
.
AMSAssetType
.
objects
.
filter
(
Q
(
code
=
form
[
'asset_type'
])
&
Q
(
is_active
=
True
)
)
.
count
()
if
valid_asset_type
<=
0
:
return
error_message
(
'400'
,
"Invalid Asset Type"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
return
function
(
self
,
request
,
*
args
,
**
kwargs
)
return
wrapper
def
AssetGroupValidation
(
function
):
@
wraps
(
function
)
def
wrapper
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
request
.
data
if
'name'
not
in
form
:
return
error_message
(
'400'
,
"The key name is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
if
len
(
form
[
'name'
])
==
0
:
return
error_message
(
'400'
,
"Asset Group name is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
check_existing
=
models
.
AMSAssetGroup
.
objects
.
filter
(
name
=
form
[
'name'
])
.
count
()
if
check_existing
>=
1
:
return
error_message
(
'400'
,
"Asset Group with this name already exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
return
function
(
self
,
request
,
*
args
,
**
kwargs
)
return
wrapper
def
AssetTypeValidation
(
function
):
@
wraps
(
function
)
def
wrapper
(
self
,
request
,
*
args
,
**
kwargs
):
form
=
request
.
data
if
'name'
not
in
form
:
return
error_message
(
'400'
,
"The key name is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
if
len
(
form
[
'name'
])
==
0
:
return
error_message
(
'400'
,
"Asset Type name is required"
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
check_existing
=
models
.
AMSAssetType
.
objects
.
filter
(
name
=
form
[
'name'
])
.
count
()
if
check_existing
>=
1
:
return
error_message
(
'400'
,
"Asset Type with this name already exists."
,
'failed'
,
status
.
HTTP_400_BAD_REQUEST
)
return
function
(
self
,
request
,
*
args
,
**
kwargs
)
return
wrapper
\ No newline at end of file
requirements/RMSv2.postman_collection.json
View file @
56ac766d
...
...
@@ -2666,7 +2666,7 @@
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\r\n\t\"
requested_to_template_name
\"
:
\"
sdsd
\"
,
\r\n\t\"
requested_to_template_id
\"
:
\"
sdfssdddasdaesdf
\"
,
\r\n\t\"
requested_to_objective
\"
:
\"
Sample Objective
\"
,
\r\n\t\"
requested_to_target_date
\"
:
\"
34
\"
,
\r\n\t\"
requested_to_priority
\"
:
\"
Normal
\"
,
\r\n\t\"
description
\"
:
\"
Lorem Ipsum
\"
,
\r\n\t\"
created_by_department
\"
:
\"
DEPARTMENT-20200122-0000002
\"
,
\r\n\t\"
created_by_user
\"
:
\"
USER-20190923-0000001
\"
,
\r\n\t\"
requested_to_company
\"
:
\"
COMPANY-20190923-0000001
\"
,
\r\n\t\"
requested_to_department
\"
:
\"
DEPARTMENT-20200122-0000002
\"
,
\r\n\t\"
requested_to_user
\"
:
\"
USER-20200122-0000002
\"
,
\r\n\t\"
html_desc
\"
:
\"
desc
\"
,
\r\n\t\"
html_obj
\"
:
\"
obj
\"
,
\r\n\t\r\n\t\"
tmp_approvers
\"
: [
\r\n\t\t
{
\r\n
\"
level
\"
: 1,
\r\n
\"
is_default
\"
: true,
\r\n
\"
user
\"
:
\"
USER-20200122-0000004
\"
,
\r\n
\"
delegation
\"
:
\"\"\r\n\t\t
},
\r\n\t\t
{
\r\n
\"
level
\"
: 2,
\r\n
\"
is_default
\"
: true,
\r\n
\"
user
\"
:
\"
USER-20200122-0000002
\"
,
\r\n
\"
delegation
\"
:
\"
DELEGATION-20191119-0000002
\"\r\n\t\t
},
\r\n\t\t
{
\r\n
\"
level
\"
: 3,
\r\n
\"
is_default
\"
: true,
\r\n
\"
user
\"
:
\"
USER-20190923-0000001
\"
,
\r\n
\"
delegation
\"
:
\"
DELEGATION-20191119-0000001
\"\r\n\t\t
}
\r\n\t
],
\r\n\t\r\n\t\"
tmp_stakes
\"
: [
\r\n\t\t
{
\r\n\t\t\t\"
delegation
\"
:
\"
Mandatory Stakeholder
\"
,
\r\n\t\t\t\"
user
\"
:
\"
USER-20200122-0000004
\"\r\n\t\t
}
\r\n\t
],
\r\n\t\r\n\t\"
tmp_attachments
\"
: [
\r\n\t
],
\r\n\t\"
tmp_details
\"
: []
\r\n
}"
"raw"
:
"{
\r\n\t\"
requested_to_template_name
\"
:
\"\"
,
\r\n\t\"
requested_to_template_id
\"
:
\"
sdfssdddasdaesdf
\"
,
\r\n\t\"
requested_to_objective
\"
:
\"
Sample Objective
\"
,
\r\n\t\"
requested_to_target_date
\"
:
\"
34
\"
,
\r\n\t\"
requested_to_priority
\"
:
\"
Normal
\"
,
\r\n\t\"
description
\"
:
\"
Lorem Ipsum
\"
,
\r\n\t\"
created_by_department
\"
:
\"
DEPARTMENT-20200122-0000002
\"
,
\r\n\t\"
created_by_user
\"
:
\"
USER-20190923-0000001
\"
,
\r\n\t\"
requested_to_company
\"
:
\"
COMPANY-20190923-0000001
\"
,
\r\n\t\"
requested_to_department
\"
:
\"
DEPARTMENT-20200122-0000002
\"
,
\r\n\t\"
requested_to_user
\"
:
\"
USER-20200122-0000002
\"
,
\r\n\t\"
html_desc
\"
:
\"
desc
\"
,
\r\n\t\"
html_obj
\"
:
\"
obj
\"
,
\r\n\t\r\n\t\"
tmp_approvers
\"
: [
\r\n\t\t
{
\r\n
\"
level
\"
: 1,
\r\n
\"
is_default
\"
: true,
\r\n
\"
user
\"
:
\"
USER-20200122-0000004
\"
,
\r\n
\"
delegation
\"
:
\"\"\r\n\t\t
},
\r\n\t\t
{
\r\n
\"
level
\"
: 2,
\r\n
\"
is_default
\"
: true,
\r\n
\"
user
\"
:
\"
USER-20200122-0000002
\"
,
\r\n
\"
delegation
\"
:
\"
DELEGATION-20191119-0000002
\"\r\n\t\t
},
\r\n\t\t
{
\r\n
\"
level
\"
: 3,
\r\n
\"
is_default
\"
: true,
\r\n
\"
user
\"
:
\"
USER-20190923-0000001
\"
,
\r\n
\"
delegation
\"
:
\"
DELEGATION-20191119-0000001
\"\r\n\t\t
}
\r\n\t
],
\r\n\t\r\n\t\"
tmp_stakes
\"
: [
\r\n\t\t
{
\r\n\t\t\t\"
delegation
\"
:
\"
Mandatory Stakeholder
\"
,
\r\n\t\t\t\"
user
\"
:
\"
USER-20200122-0000004
\"\r\n\t\t
}
\r\n\t
],
\r\n\t\r\n\t\"
tmp_attachments
\"
: [
\r\n\t
],
\r\n\t\"
tmp_details
\"
: []
\r\n
}"
},
"url"
:
{
"raw"
:
"{{baseurl}}/change-request/template-post/"
,
...
...
@@ -3506,21 +3506,10 @@
"name"
:
"Asset Groups"
,
"item"
:
[
{
"name"
:
"
Create
Asset Group"
,
"name"
:
"
List
Asset Group"
,
"request"
:
{
"method"
:
"POST"
,
"header"
:
[
{
"key"
:
"Content-Type"
,
"name"
:
"Content-Type"
,
"value"
:
"application/json"
,
"type"
:
"text"
}
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\n\t\"
name
\"
:
\"
Asset Group 1
\"
,
\n\t\"
asset_group
\"
:
\"
JTC
\"
,
\n\t\"
created_by
\"
:
\"
USER-20190923-0000001
\"\n
}"
},
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-group/"
,
"host"
:
[
...
...
@@ -3536,9 +3525,29 @@
"response"
:
[]
},
{
"name"
:
"
Edit
Asset Group"
,
"name"
:
"
View
Asset Group"
,
"request"
:
{
"method"
:
"PUT"
,
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-group/ASSTGRP-20200317-0000001/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-group"
,
"ASSTGRP-20200317-0000001"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"Create Asset Group"
,
"request"
:
{
"method"
:
"POST"
,
"header"
:
[
{
"key"
:
"Content-Type"
,
...
...
@@ -3549,17 +3558,16 @@
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\n\t\"
name
\"
:
\"
Asset Group 3
\"
,
\n\t\"
asset_group
\"
:
\"
JTCs
\"\n
}"
"raw"
:
"{
\n\t\"
name
\"
:
\"\"\n
}"
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-group/
AMSGRP-20191025-0000002/
"
,
"raw"
:
"{{baseurl}}/asset-management/asset-group/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-group"
,
"AMSGRP-20191025-0000002"
,
""
]
}
...
...
@@ -3567,23 +3575,30 @@
"response"
:
[]
},
{
"name"
:
"
Delete
Asset Group"
,
"name"
:
"
Edit
Asset Group"
,
"request"
:
{
"method"
:
"DELETE"
,
"header"
:
[],
"method"
:
"PUT"
,
"header"
:
[
{
"key"
:
"Content-Type"
,
"name"
:
"Content-Type"
,
"value"
:
"application/json"
,
"type"
:
"text"
}
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
""
"raw"
:
"
{
\r\n
\"
name
\"
:
\"
Asset Group 1
\"\r\n
}
"
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-group/A
MSGRP-20191025-0000002
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset-group/A
SSTGRP-20200317-0000001
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-group"
,
"A
MSGRP-20191025-0000002
"
,
"A
SSTGRP-20200317-0000001
"
,
""
]
}
...
...
@@ -3591,19 +3606,19 @@
"response"
:
[]
},
{
"name"
:
"
View Asset Group
"
,
"name"
:
"
Archive List
"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-group/
AMSGRP-20191025-0000002
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset-group/
archived
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-group"
,
"
AMSGRP-20191025-0000002
"
,
"
archived
"
,
""
]
}
...
...
@@ -3611,18 +3626,31 @@
"response"
:
[]
},
{
"name"
:
"
List
Asset Group"
,
"name"
:
"
Restore of
Asset Group"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"method"
:
"PATCH"
,
"header"
:
[
{
"key"
:
"Content-Type"
,
"name"
:
"Content-Type"
,
"type"
:
"text"
,
"value"
:
"application/json"
}
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
""
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-group/"
,
"raw"
:
"{{baseurl}}/asset-management/asset-group/
ASSTGRP-20200319-0000003/restore/
"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-group"
,
"ASSTGRP-20200319-0000003"
,
"restore"
,
""
]
}
...
...
@@ -3630,19 +3658,23 @@
"response"
:
[]
},
{
"name"
:
"
Archive List
"
,
"name"
:
"
Delete Asset Group
"
,
"request"
:
{
"method"
:
"
GET
"
,
"method"
:
"
DELETE
"
,
"header"
:
[],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
""
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-group/
archived
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset-group/
ASSTGRP-20200319-0000002
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-group"
,
"
archived
"
,
"
ASSTGRP-20200319-0000002
"
,
""
]
}
...
...
@@ -3689,6 +3721,26 @@
},
"response"
:
[]
},
{
"name"
:
"View Asset Type"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-type/ASSTTYPE-20200318-0000010/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-type"
,
"ASSTTYPE-20200318-0000010"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"Create of Asset Type"
,
"request"
:
{
...
...
@@ -3703,7 +3755,7 @@
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\n\t\"
name
\"
:
\"
cctv
5
\"
,
\n\t\"
dynamic_fied
\"
:
\"\"
,
\n\t\"
created_by
\"
:
\"
USER-20190923-0000001
\"\n
}"
"raw"
:
"{
\n\t\"
name
\"
:
\"
cctv
12
\"
,
\n\t\"
dynamic_fied
\"
:
\"
\"\n
}"
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-type/"
,
...
...
@@ -3720,12 +3772,30 @@
"response"
:
[]
},
{
"name"
:
"
View
Asset Type"
,
"name"
:
"
Edit
Asset Type"
,
"request"
:
{
"method"
:
"
GE
T"
,
"method"
:
"
PU
T"
,
"header"
:
[],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\r\n
\"
name
\"
:
\"
cctv17
\"
,
\r\n
\"
dynamic_field
\"
: null
\r\n
}"
,
"options"
:
{
"raw"
:
{
"language"
:
"json"
}
}
},
"url"
:
{
"raw"
:
""
"raw"
:
"{{baseurl}}/asset-management/asset-type/ASSTTYPE-20200318-0000010/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-type"
,
"ASSTTYPE-20200318-0000010"
,
""
]
}
},
"response"
:
[]
...
...
@@ -3733,10 +3803,19 @@
{
"name"
:
"Delete Asset Type"
,
"request"
:
{
"method"
:
"
GET
"
,
"method"
:
"
DELETE
"
,
"header"
:
[],
"url"
:
{
"raw"
:
""
"raw"
:
"{{baseurl}}/asset-management/asset-type/ASSTTYPE-20200318-0000010/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-type"
,
"ASSTTYPE-20200318-0000010"
,
""
]
}
},
"response"
:
[]
...
...
@@ -3760,6 +3839,27 @@
}
},
"response"
:
[]
},
{
"name"
:
"Restore of Asset Type"
,
"request"
:
{
"method"
:
"PATCH"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-type/ASSTTYPE-20200318-0000003/restore/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-type"
,
"ASSTTYPE-20200318-0000003"
,
"restore"
,
""
]
}
},
"response"
:
[]
}
],
"protocolProfileBehavior"
:
{},
...
...
@@ -3774,13 +3874,33 @@
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/assets/"
,
"raw"
:
"{{baseurl}}/asset-management/asset/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"List of Archived Asset"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset/archived/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"assets"
,
"asset"
,
"archived"
,
""
]
}
...
...
@@ -3793,20 +3913,42 @@
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s/ASST-20200317-0000004
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset
/ASST-20200319-0000006
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset
s
"
,
"ASST-2020031
7-0000004
"
,
"asset"
,
"ASST-2020031
9-0000006
"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"Stock List"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset/ASST-20200319-0000006/stock-list/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset"
,
"ASST-20200319-0000006"
,
"stock-list"
,
""
]
},
"description"
:
"List of Stocks under a specific asset"
},
"response"
:
[]
},
{
"name"
:
"Delete of Asset"
,
"request"
:
{
...
...
@@ -3817,14 +3959,39 @@
"raw"
:
""
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s/jmedrano-20200317-0000002
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset
/ASST-20200318-0000005
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"assets"
,
"jmedrano-20200317-0000002"
,
"asset"
,
"ASST-20200318-0000005"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"Restore of Asset"
,
"request"
:
{
"method"
:
"PATCH"
,
"header"
:
[],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
""
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset/ASST-20200318-0000005/restore/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset"
,
"ASST-20200318-0000005"
,
"restore"
,
""
]
}
...
...
@@ -3845,16 +4012,16 @@
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\n\t\"
name
\"
:
\"
CCTV22
\"
,
\n\t\"
asset_type
\"
:
\"
ASSTTYPE-20200317-0000002
\"
,
\n\t\"
created_by
\"
:
\"
USER-20190923-0000001
\"\n\t
\n
}"
"raw"
:
"{
\n\t\"
name
\"
:
\"
g1a
\"
,
\n\t\"
asset_type
\"
:
\"
ASSTTYPE-20200318-0000003
\"
\n
}"
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset
s
"
,
"asset"
,
""
]
}
...
...
@@ -3862,19 +4029,30 @@
"response"
:
[]
},
{
"name"
:
"
Archive Lis
t"
,
"name"
:
"
Edit Asse
t"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"method"
:
"PUT"
,
"header"
:
[
{
"key"
:
"Content-Type"
,
"name"
:
"Content-Type"
,
"type"
:
"text"
,
"value"
:
"application/json"
}
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\n\t\"
name
\"
:
\"
update
\"
,
\n\t\"
asset_type
\"
:
\"
ASSTTYPE-20200318-0000003
\"\n
}
\t
"
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s/archived
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset
/ASST-20200319-0000006
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset
s
"
,
"
archived
"
,
"asset"
,
"
ASST-20200319-0000006
"
,
""
]
}
...
...
@@ -3886,7 +4064,7 @@
"_postman_isSubFolder"
:
true
},
{
"name"
:
"Asset Stock
List
"
,
"name"
:
"Asset Stock"
,
"item"
:
[
{
"name"
:
"List of Asset Stock"
,
...
...
@@ -3894,13 +4072,33 @@
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/assets-stock-list/"
,
"raw"
:
"{{baseurl}}/asset-management/asset-stock/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-stock"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"Archive List"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-stock/archived/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"assets-stock-list"
,
"asset-stock"
,
"archived"
,
""
]
}
...
...
@@ -3913,14 +4111,14 @@
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s-stock-list/ASSTSTOCK-20200317-0000002
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset
-stock/ASSTSTOCK-20200319-0000008
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset
s-stock-list
"
,
"ASSTSTOCK-2020031
7-0000002
"
,
"asset
-stock
"
,
"ASSTSTOCK-2020031
9-0000008
"
,
""
]
}
...
...
@@ -3937,14 +4135,70 @@
"raw"
:
""
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s-stock-list/ASSTSTOCK-20200317-0000002
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset
-stock/ASSTSTOCK-20200319-0000005
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"assets-stock-list"
,
"ASSTSTOCK-20200317-0000002"
,
"asset-stock"
,
"ASSTSTOCK-20200319-0000005"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"Restore of Asset Stock"
,
"request"
:
{
"method"
:
"PATCH"
,
"header"
:
[],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
""
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-stock/ASSTSTOCK-20200319-0000005/restore/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-stock"
,
"ASSTSTOCK-20200319-0000005"
,
"restore"
,
""
]
}
},
"response"
:
[]
},
{
"name"
:
"Update of Asset Stock"
,
"request"
:
{
"method"
:
"PUT"
,
"header"
:
[
{
"key"
:
"Content-Type"
,
"name"
:
"Content-Type"
,
"value"
:
"application/json"
,
"type"
:
"text"
}
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\n\t\"
asset_type
\"
:
\"
ASSTTYPE-20200317-0000001
\"
,
\n\t\"
unique_identifier
\"
:
\"
ph
\"
,
\n\t\"
status
\"
:
\"
In-Store
\"
,
\n\t\"
acquisition_type
\"
:
\"
Owned
\"
,
\n\t\"
location
\"
:
\"
Country Space
\"
,
\n\t\"
user_client
\"
:
\"
USER-20190923-0000001
\"
,
\n\t\"
manager
\"
:
\"
USER-20190923-0000001
\"
,
\n\t\"
dynamic_field
\"
:
\"\"
,
\n\t\"
asset
\"
:
\"
ASST-20200319-0000006
\"
,
\n\t\"
asset_group
\"
:
\"
ASSTGRP-20200319-0000002
\"\n\t\n\t\n
}
\n
"
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset-stock/ASSTSTOCK-20200319-0000008/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset-stock"
,
"ASSTSTOCK-20200319-0000008"
,
""
]
}
...
...
@@ -3965,16 +4219,16 @@
],
"body"
:
{
"mode"
:
"raw"
,
"raw"
:
"{
\n\t\"
name
\"
:
\"
CCTV2
\"
,
\n\t\"
asset_type
\"
:
\"
ASSTTYPE-20200317-0000001
\"
,
\n\t\"
created_by
\"
:
\"
USER-20190923-0000001
\"
,
\n\t\"
unique_identifier
\"
:
\"
ph-002
\"
,
\n\t\"
status
\"
:
\"
In-Store
\"
,
\n\t\"
acquisition_type
\"
:
\"
Owned
\"
,
\n\t\"
location
\"
:
\"
Country Space
\"
,
\n\t\"
user_client
\"
:
\"
USER-20190923-0000001
\"
,
\n\t\"
manager
\"
:
\"
USER-20190923-0000001
\"
,
\n\t\"
dynamic_field
\"
:
\"\"
,
\n\t\"
asset
\"
:
\"
ASST-20200317-0000004
\"
,
\n\t\"
asset_group
\"
:
\"
ASSTGRP-20200317-0000001
\"\n\t\n\t\n
}
\n
"
"raw"
:
"{
\n\t\"
asset_type
\"
:
\"
ASSTTYPE-20200317-0000001
\"
,
\n\t\"
unique_identifier
\"
:
\"
ph-002112
\"
,
\n\t\"
status
\"
:
\"
In-Store
\"
,
\n\t\"
acquisition_type
\"
:
\"
Owned
\"
,
\n\t\"
location
\"
:
\"
Country Space
\"
,
\n\t\"
user_client
\"
:
\"
USER-20190923-0000001
\"
,
\n\t\"
manager
\"
:
\"
USER-20190923-0000001
\"
,
\n\t\"
dynamic_field
\"
:
\"\"
,
\n\t\"
asset
\"
:
\"
ASST-20200319-0000006
\"
,
\n\t\"
asset_group
\"
:
\"
ASSTGRP-20200319-0000002
\"\n\t\n\t\n
}
\n
"
},
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s-stock-list
/"
,
"raw"
:
"{{baseurl}}/asset-management/asset
-stock
/"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"asset
s-stock-list
"
,
"asset
-stock
"
,
""
]
}
...
...
@@ -3982,26 +4236,47 @@
"response"
:
[]
},
{
"name"
:
"
Archive List
"
,
"name"
:
"
Dashboard
"
,
"request"
:
{
"method"
:
"GET"
,
"header"
:
[],
"url"
:
{
"raw"
:
"{{baseurl}}/asset-management/asset
s-stock-list/archived/
"
,
"raw"
:
"{{baseurl}}/asset-management/asset
-stock/dashboard
"
,
"host"
:
[
"{{baseurl}}"
],
"path"
:
[
"asset-management"
,
"assets-stock-list"
,
"archived"
,
""
"asset-stock"
,
"dashboard"
]
}
},
"response"
:
[]
}
],
"event"
:
[
{
"listen"
:
"prerequest"
,
"script"
:
{
"id"
:
"288599a1-e537-45fe-ab0b-6af0b6abe0b0"
,
"type"
:
"text/javascript"
,
"exec"
:
[
""
]
}
},
{
"listen"
:
"test"
,
"script"
:
{
"id"
:
"3f03e962-e3bc-4194-a78d-16f9859cc02a"
,
"type"
:
"text/javascript"
,
"exec"
:
[
""
]
}
}
],
"protocolProfileBehavior"
:
{},
"_postman_isSubFolder"
:
true
},
...
...
@@ -4500,7 +4775,7 @@
"bearer"
:
[
{
"key"
:
"token"
,
"value"
:
"
52b082644cbf5fc485da2169f30fd1bf5bf3207e
"
,
"value"
:
"
c62f448746704fabc7094417bdb2bab4d635a68c
"
,
"type"
:
"string"
}
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment