Compare commits

..

1 Commits

Author SHA1 Message Date
AkshayJagadish-ne
6ac8ebbc63 Testing 2020-10-13 03:03:18 -04:00
6 changed files with 39 additions and 143 deletions

View File

@@ -5,7 +5,7 @@ on:
# Publish `master` as Docker `latest` image.
branches:
- master
- 'release/**'
- Testing
# Publish `v1.2.3` tags as releases.
tags:
@@ -14,10 +14,6 @@ on:
# Run tests for any PRs.
pull_request:
schedule:
# runs nightly build at 5AM
- cron: '00 09 * * *'
env:
IMAGE_NAME: wlan-cloud-graphql-gw
DOCKER_REPO: tip-tip-wlan-cloud-docker-repo.jfrog.io
@@ -44,45 +40,42 @@ jobs:
needs: test
runs-on: ubuntu-latest
if: github.event_name == 'push' || github.event_name == 'schedule'
if: github.event_name == 'push'
steps:
- uses: actions/checkout@v2
with:
ssh-key: ${{ secrets.GH_AUTOMATION_KEY }}
- name: Adding property file with component version and commit hash
- name: Adding property file with component version and commit hash
run: |
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Create a release snapshot if we are on release branch
[[ "${{ github.ref }}" == "refs/heads/release/"* ]] && VERSION=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\/release\/[v]//' | awk '{print $1"-SNAPSHOT"}')
# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=0.0.1-SNAPSHOT
[ "$VERSION" == "master" ] && VERSION=latest
TIMESTAMP=$(date +'%Y-%m-%d')
echo date=$TIMESTAMP > commit.properties
echo commitId=$GITHUB_SHA >> commit.properties
echo projectVersion=$VERSION>> commit.properties
- name: Build image
run: docker build . --file Dockerfile --tag image
- name: Login to Docker Hub
env:
DOCKER_PASSWORD: ${{ secrets.REPO_PASSWORD }}
run: |
echo "${DOCKER_PASSWORD}" | docker login $DOCKER_REPO --username "build-pipeline" --password-stdin
echo "${DOCKER_PASSWORD}" | docker login $DOCKER_REPO --username "build-pipeline" --password-stdin
- name: Push image
run: |
IMAGE_ID=$DOCKER_REPO/$IMAGE_NAME
TIMESTAMP=$(date +'%Y-%m-%d')
# Change all uppercase to lowercase
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
@@ -92,18 +85,11 @@ jobs:
# Strip "v" prefix from tag name
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Create a release snapshot if we are on release branch
[[ "${{ github.ref }}" == "refs/heads/release/"* ]] && VERSION=$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\/release\/[v]//' | awk '{print $1"-SNAPSHOT"}')
# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=0.0.1-SNAPSHOT
[ "$VERSION" == "master" ] && VERSION=latest
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
echo TIMESTAMP=$TIMESTAMP
docker tag image $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
docker tag image $IMAGE_ID:$VERSION-$TIMESTAMP
docker push $IMAGE_ID:$VERSION-$TIMESTAMP
docker tag image $IMAGE_ID:$VERSION-AJ
docker push $IMAGE_ID:$VERSION-AJ

8
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "wlan-cloud-graphql-apollo",
"version": "0.3.1",
"version": "0.3.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -2321,9 +2321,9 @@
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
"object-path": {
"version": "0.11.5",
"resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz",
"integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg=="
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz",
"integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk="
},
"object.assign": {
"version": "4.1.0",

View File

@@ -1,6 +1,6 @@
{
"name": "wlan-cloud-graphql-apollo",
"version": "1.0.1",
"version": "0.3.1",
"description": "",
"main": "index.js",
"dependencies": {

View File

@@ -204,36 +204,9 @@ export class API extends RESTDataSource {
}
async createProfile(profile) {
const newProfile = await this.post('portal/profile', {
return this.post('portal/profile', {
...profile,
});
if (profile.profileType === 'passpoint') {
const {
id,
details: { associatedAccessSsidProfileIds, osuSsidProfileId },
} = newProfile;
this.get('portal/profile', {
profileId: osuSsidProfileId,
}).then((profile) => {
this.put('portal/profile', {
...profile,
childProfileIds: [...profile.childProfileIds, id],
});
});
associatedAccessSsidProfileIds.forEach((profileId) => {
this.get('portal/profile', {
profileId,
}).then((profile) => {
this.put('portal/profile', {
...profile,
childProfileIds: [...profile.childProfileIds, id],
});
});
});
}
return newProfile;
}
async getProfile(profileId) {
return this.get('portal/profile', {
@@ -241,35 +214,6 @@ export class API extends RESTDataSource {
});
}
async updateProfile(profile) {
if (profile.profileType === 'passpoint') {
const {
id,
details: { associatedAccessSsidProfileIds, osuSsidProfileId },
} = profile;
this.get('portal/profile', {
profileId: osuSsidProfileId,
}).then((profile) => {
if (!profile.childProfileIds.includes(parseInt(id, 10))) {
this.put('portal/profile', {
...profile,
childProfileIds: [...profile.childProfileIds, id],
});
}
});
associatedAccessSsidProfileIds.forEach((profileId) => {
this.get('portal/profile', {
profileId,
}).then((profile) => {
if (!profile.childProfileIds.includes(parseInt(id, 10))) {
this.put('portal/profile', {
...profile,
childProfileIds: [...profile.childProfileIds, id],
});
}
});
});
}
return this.put('portal/profile', {
...profile,
});
@@ -280,11 +224,17 @@ export class API extends RESTDataSource {
});
}
async getAllProfiles({ customerId, cursor, limit, type, context }) {
return this.get('portal/profile/forCustomer', {
const result = await this.get('portal/profile/forCustomer', {
customerId,
...(type && { profileType: type }),
paginationContext: buildPaginationContext(cursor, limit, context),
});
if (type && result.items) {
result.items = result.items.filter((i) => i.profileType === type);
return result;
}
return result;
}
async getProfilesById(profileIdSet) {
return this.get('portal/profile/inSet', {

View File

@@ -168,19 +168,19 @@ const resolvers = {
return dataSources.api.updateToken(refreshToken);
},
createUser: async (_, { username, password, roles, customerId }, { dataSources }) => {
return dataSources.api.createUser({ username, password, roles, customerId });
createUser: async (_, { username, password, role, customerId }, { dataSources }) => {
return dataSources.api.createUser({ username, password, role, customerId });
},
updateUser: async (
_,
{ id, username, password, roles, customerId, lastModifiedTimestamp },
{ id, username, password, role, customerId, lastModifiedTimestamp },
{ dataSources }
) => {
return dataSources.api.updateUser({
id,
username,
password,
roles,
role,
customerId,
lastModifiedTimestamp,
});
@@ -238,7 +238,6 @@ const resolvers = {
profileId,
locationId,
name,
baseMacAddress,
latitude,
longitude,
serial,
@@ -255,7 +254,6 @@ const resolvers = {
profileId,
locationId,
name,
baseMacAddress: { addressAsString: baseMacAddress },
latitude,
longitude,
serial,
@@ -380,16 +378,6 @@ const resolvers = {
},
},
Equipment: {
baseMacAddress: ({ baseMacAddress }) => baseMacAddress && baseMacAddress.addressAsString,
manufacturer: ({ baseMacAddress }, args, { dataSources }) => {
return (
baseMacAddress &&
baseMacAddress.addressAsString &&
dataSources.api.getOuiLookup(
baseMacAddress.addressAsString.replace(/[:-]/g, '').substring(0, 6)
)
);
},
profile: ({ profileId }, args, { dataSources }) => {
return dataSources.api.getProfile(profileId);
},
@@ -397,14 +385,7 @@ const resolvers = {
return dataSources.api.getEquipmentStatus(
customerId,
[id],
[
'PROTOCOL',
'OS_PERFORMANCE',
'RADIO_UTILIZATION',
'CLIENT_DETAILS',
'FIRMWARE',
'RADIO_CHANNEL',
]
['PROTOCOL', 'OS_PERFORMANCE', 'RADIO_UTILIZATION', 'CLIENT_DETAILS', 'FIRMWARE']
);
},
channel: ({ details }) => {
@@ -441,7 +422,6 @@ const resolvers = {
clientDetails: (items) => items.find((i) => i.statusDataType === 'CLIENT_DETAILS') || {},
firmware: (items) => items.find((i) => i.statusDataType === 'FIRMWARE') || {},
dashboard: (items) => items.find((i) => i.statusDataType === 'CUSTOMER_DASHBOARD') || {},
channel: (items) => items.find((i) => i.statusDataType === 'RADIO_CHANNEL') || {},
},
Status: {
detailsJSON: ({ details }) => details || {},
@@ -470,7 +450,7 @@ const resolvers = {
reportedMacAddr &&
reportedMacAddr.addressAsString &&
dataSources.api.getOuiLookup(
reportedMacAddr.addressAsString.replace(/[:-]/g, '').substring(0, 6)
reportedMacAddr.addressAsString.replace(/:/g, '').substring(0, 6)
)
);
},
@@ -521,18 +501,6 @@ const resolvers = {
return result && result.value2;
},
associatedSsidProfiles: ({ details }, args, { dataSources }) => {
return (
details &&
details.associatedAccessSsidProfileIds &&
dataSources.api.getProfilesById(details.associatedAccessSsidProfileIds)
);
},
osuSsidProfile: ({ details }, args, { dataSources }) => {
return (
details && details.osuSsidProfileId && dataSources.api.getProfile(details.osuSsidProfileId)
);
},
},
ClientSession: {
id: ({ macAddress }) => macAddress.addressAsString,
@@ -546,9 +514,7 @@ const resolvers = {
return (
macAddress &&
macAddress.addressAsString &&
dataSources.api.getOuiLookup(
macAddress.addressAsString.replace(/[:-]/g, '').substring(0, 6)
)
dataSources.api.getOuiLookup(macAddress.addressAsString.replace(/:/g, '').substring(0, 6))
);
},
equipment: ({ equipmentId }, args, { dataSources }) => {

View File

@@ -116,7 +116,7 @@ const typeDefs = gql`
id: ID!
username: String!
password: String
roles: [String]
role: String!
customerId: ID!
lastModifiedTimestamp: String
}
@@ -159,8 +159,6 @@ const typeDefs = gql`
profileId: ID!
locationId: ID!
name: String!
baseMacAddress: String
manufacturer: String
latitude: String
longitude: String
serial: String
@@ -191,7 +189,6 @@ const typeDefs = gql`
clientDetails: Status
firmware: Status
dashboard: Status
channel: Status
}
type Status {
@@ -231,8 +228,6 @@ const typeDefs = gql`
lastModifiedTimestamp: String
equipmentCount: Int
details: JSONObject
associatedSsidProfiles: [Profile]
osuSsidProfile: Profile
}
type ProfilePagination {
@@ -355,12 +350,12 @@ const typeDefs = gql`
authenticateUser(email: String!, password: String!): Token
updateToken(refreshToken: String!): Token
createUser(username: String!, password: String!, roles: [String], customerId: ID!): User
createUser(username: String!, password: String!, role: String!, customerId: ID!): User
updateUser(
id: ID!
username: String!
password: String!
roles: [String]
role: String!
customerId: ID!
lastModifiedTimestamp: String
): User
@@ -402,7 +397,6 @@ const typeDefs = gql`
profileId: ID!
locationId: ID!
name: String!
baseMacAddress: String
latitude: String
longitude: String
serial: String