Skip to content

Commit

Permalink
Merge pull request #178 from ostelco/develop
Browse files Browse the repository at this point in the history
Pickup latest changes
  • Loading branch information
prasanthu committed Jun 25, 2018
2 parents d5c49c8 + 3e7bd24 commit 26653ea
Show file tree
Hide file tree
Showing 106 changed files with 2,604 additions and 557 deletions.
8 changes: 8 additions & 0 deletions .gcloudignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.gcloudignore

.git
.gitignore

#!include:.gitignore

pantel-prod.json
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ out
target
secrets/*
.nb-gradle
.swagger_gen_dir
.swagger_gen_dir
14 changes: 11 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,23 @@ before_install:
# The curl command is not always working. Kept original command in comment incase codacy updates
#- sudo apt-get install jq
#- wget -O ~/codacy-coverage-reporter-assembly-latest.jar $(curl https://api.github.com/repos/codacy/codacy-coverage-reporter/releases/latest | jq -r .assets[0].browser_download_url)
- wget -O ~/codacy-coverage-reporter-assembly-latest.jar https://github.com/codacy/codacy-coverage-reporter/releases/download/4.0.0/codacy-coverage-reporter-4.0.0-assembly.jar
- wget -O ~/codacy-coverage-reporter-assembly-latest.jar https://github.com/codacy/codacy-coverage-reporter/releases/download/4.0.1/codacy-coverage-reporter-4.0.1-assembly.jar

install: echo "skip 'gradle assemble' step"

script: ./gradlew build
script: ./gradlew build --parallel

before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/

after_success:
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r prime/build/reports/jacoco/test/jacocoTestReport.xml
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r analytics/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r client-api/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r diameter-stack/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r embedded-graph-store/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r ocs/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r ocsgw/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r ostelco-lib/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter report -l Java -r pseudonym-server/build/reports/jacoco/test/jacocoTestReport.xml --partial
- java -cp ~/codacy-coverage-reporter-assembly-latest.jar com.codacy.CodacyCoverageReporter final
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@ Mono Repository for core protocols and services around a OCS/BSS for packet data

[analytics](./analytics/README.md)

[admin-api](./admin-api/README.md)

[auth-server](./auth-server/README.md)

[client-api](./client-api/README.md)

[diameter-stack](./diameter-stack/README.md)

[diameter-test](./diameter-test/README.md)
Expand All @@ -28,5 +32,8 @@ Mono Repository for core protocols and services around a OCS/BSS for packet data

[seagull](./seagull/README.md)

[![Build Status](https://travis-ci.org/ostelco/ostelco-core.svg?branch=master)](https://travis-ci.org/ostelco/ostelco-core) [![codebeat badge](https://codebeat.co/badges/e4c26ba7-75d6-48d2-a3d0-f72988998642)](https://codebeat.co/projects/github-com-ostelco-ostelco-core-master) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/e7b2ae0440104a5e8ae6fa5e919147dc)](https://www.codacy.com/app/la3lma/ostelco-core?utm_source=github.com&utm_medium=referral&utm_content=ostelco/ostelco-core&utm_campaign=Badge_Grade)[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/e7b2ae0440104a5e8ae6fa5e919147dc)](https://www.codacy.com/app/la3lma/ostelco-core?utm_source=github.com&utm_medium=referral&utm_content=ostelco/ostelco-core&utm_campaign=Badge_Coverage)
[![Build Status](https://travis-ci.org/ostelco/ostelco-core.svg?branch=master)](https://travis-ci.org/ostelco/ostelco-core)
[![codebeat badge](https://codebeat.co/badges/e4c26ba7-75d6-48d2-a3d0-f72988998642)](https://codebeat.co/projects/github-com-ostelco-ostelco-core-master)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d15007ecfc2942f7901673177e147d09)](https://www.codacy.com/app/vihang.patil/ostelco-core?utm_source=github.com&utm_medium=referral&utm_content=ostelco/ostelco-core&utm_campaign=Badge_Grade)
[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/d15007ecfc2942f7901673177e147d09)](https://www.codacy.com/app/vihang.patil/ostelco-core?utm_source=github.com&utm_medium=referral&utm_content=ostelco/ostelco-core&utm_campaign=Badge_Coverage)

2 changes: 1 addition & 1 deletion acceptance-tests/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id "org.jetbrains.kotlin.jvm" version "1.2.50"
id "application"
id "com.github.johnrengelman.shadow" version "2.0.4"
id "org.jetbrains.kotlin.jvm" version "1.2.41"
}

dependencies {
Expand Down
21 changes: 21 additions & 0 deletions acceptance-tests/src/main/kotlin/org/ostelco/at/jersey/Tests.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ import org.ostelco.prime.client.model.Product
import org.ostelco.prime.client.model.Profile
import org.ostelco.prime.client.model.SubscriptionStatus
import org.ostelco.prime.logger
import org.ostelco.prime.model.ApplicationToken
import java.time.Instant
import java.util.*
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertNotNull
Expand Down Expand Up @@ -180,4 +182,23 @@ class ProfileTest {
assertEquals("", clearedProfile.city, "Incorrect 'city' in response after clearing profile")
assertEquals("", clearedProfile.country, "Incorrect 'country' in response after clearing profile")
}

@Test
fun testApplicationToken() {

val token = UUID.randomUUID().toString()
val applicationId = "testApplicationId"
val tokenType = "FCM"

val testToken = ApplicationToken(token, applicationId, tokenType)

val reply: ApplicationToken = post {
path = "/applicationtoken"
body = testToken
}

assertEquals(token, reply.token, "Incorrect token in reply after posting new token")
assertEquals(applicationId, reply.applicationID, "Incorrect applicationId in reply after posting new token")
assertEquals(tokenType, reply.tokenType, "Incorrect tokenType in reply after posting new token")
}
}
File renamed without changes.
10 changes: 4 additions & 6 deletions admin-api/build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
plugins {
id "java-library"
id "org.jetbrains.kotlin.jvm" version "1.2.41"
id "org.jetbrains.kotlin.jvm" version "1.2.50"
id "java-library"
}

dependencies {

implementation project(":prime-api")

testImplementation "io.dropwizard:dropwizard-testing:$dropwizardVersion"
implementation project(":prime-api")
testImplementation "io.dropwizard:dropwizard-testing:$dropwizardVersion"
}
14 changes: 0 additions & 14 deletions admin-api/src/main/kotlin/org/ostelco/prime/admin/api/Model.kt

This file was deleted.

108 changes: 57 additions & 51 deletions admin-api/src/main/kotlin/org/ostelco/prime/admin/api/Resources.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package org.ostelco.prime.admin.api


import org.ostelco.prime.model.Offer
import org.ostelco.prime.model.Product
import org.ostelco.prime.model.ProductClass
import org.ostelco.prime.model.Segment
import org.ostelco.prime.module.getResource
import org.ostelco.prime.storage.DataStore
import org.ostelco.prime.storage.AdminDataStore
import org.ostelco.prime.storage.legacy.Storage
import javax.ws.rs.GET
import javax.ws.rs.POST
import javax.ws.rs.PUT
Expand All @@ -14,94 +17,97 @@ import javax.ws.rs.PathParam
@Path("/offers")
class OfferResource() {

private val dataStore by lazy { getResource<DataStore>() }
private val dataStore by lazy { getResource<Storage>() }
private val adminDataStore by lazy { getResource<AdminDataStore>() }

@GET
fun getOffers() = dataStore.getOffers().map { it.id }
// @GET
// fun getOffers() = adminDataStore.getOffers()

@GET
@Path("/{offer-id}")
fun getOffer(@PathParam("offer-id") offerId: String) = dataStore.getOffer(offerId)
// @GET
// @Path("/{offer-id}")
// fun getOffer(@PathParam("offer-id") offerId: String) = adminDataStore.getOffer(offerId)

@POST
fun createOffer(offer: Offer) = dataStore.createOffer(toStoredOffer(offer))

private fun toStoredOffer(offer: Offer): org.ostelco.prime.model.Offer {
return org.ostelco.prime.model.Offer(
offer.id,
offer.segments.map { dataStore.getSegment(it) }.requireNoNulls(),
offer.products.map { dataStore.getProduct(it) }.requireNoNulls())
}
fun createOffer(offer: Offer) = adminDataStore.createOffer(offer)

// private fun toStoredOffer(offer: Offer): org.ostelco.prime.model.Offer {
// return org.ostelco.prime.model.Offer(
// offer.id,
// offer.segments.map { adminDataStore.getSegment(it) }.requireNoNulls(),
// offer.products.map { dataStore.getProduct(null, it) }.requireNoNulls())
// }
}

@Path("/segments")
class SegmentResource {

private val dataStore by lazy { getResource<DataStore>() }
private val dataStore by lazy { getResource<Storage>() }
private val adminDataStore by lazy { getResource<AdminDataStore>() }

@GET
fun getSegments() = dataStore.getSegments().map { it.id }
// @GET
// fun getSegments() = adminDataStore.getSegments().map { it.id }

@GET
@Path("/{segment-id}")
fun getSegment(@PathParam("segment-id") segmentId: String) = dataStore.getSegment(segmentId)
// @GET
// @Path("/{segment-id}")
// fun getSegment(@PathParam("segment-id") segmentId: String) = adminDataStore.getSegment(segmentId)

@POST
fun createSegment(segment: Segment) = dataStore.createSegment(toStoredSegment(segment))
fun createSegment(segment: Segment) = adminDataStore.createSegment(segment)

@PUT
@Path("/{segment-id}")
fun updateSegment(
@PathParam("segment-id") segmentId: String,
segment: Segment): Boolean {
segment: Segment) {
segment.id = segmentId
return dataStore.updateSegment(toStoredSegment(segment))
adminDataStore.updateSegment(segment)
}

private fun toStoredSegment(segment: Segment): org.ostelco.prime.model.Segment {
return org.ostelco.prime.model.Segment(
segment.id,
segment.subscribers.map { dataStore.getSubscriber(it) }.requireNoNulls())
}
// private fun toStoredSegment(segment: Segment): org.ostelco.prime.model.Segment {
// return org.ostelco.prime.model.Segment(
// segment.id,
// segment.subscribers.map { dataStore.getSubscriber(it) }.requireNoNulls())
// }
}

@Path("/products")
class ProductResource {

private val dataStore by lazy { getResource<DataStore>() }
private val dataStore by lazy { getResource<Storage>() }
private val adminDataStore by lazy { getResource<AdminDataStore>() }

@GET
fun getProducts() = dataStore.getProducts().map { it.id }
// @GET
// fun getProducts() = adminDataStore.getProducts().map { it.id }

@GET
@Path("/{product-sku}")
fun getProducts(@PathParam("product-sku") productSku: String) = dataStore.getProduct(productSku)
fun getProducts(@PathParam("product-sku") productSku: String) = dataStore.getProduct(null, productSku)

@POST
fun createProduct(product: Product) = dataStore.createProduct(product)
fun createProduct(product: Product) = adminDataStore.createProduct(product)
}

@Path("/product_classes")
class ProductClassResource {

private val dataStore by lazy { getResource<DataStore>() }

@GET
fun getProductClasses() = dataStore.getProductClasses().map { it.id }
private val adminDataStore by lazy { getResource<AdminDataStore>() }

@GET
@Path("/{product-class-id}")
fun getProductClass(@PathParam("product-class-id") productClassId: String) = dataStore.getProductClass(productClassId)
// @GET
// fun getProductClasses() = adminDataStore.getProductClasses().map { it.id }
//
// @GET
// @Path("/{product-class-id}")
// fun getProductClass(@PathParam("product-class-id") productClassId: String) = adminDataStore.getProductClass(productClassId)

@POST
fun createProductClass(productClass: ProductClass) = dataStore.createProductClass(productClass)

@PUT
@Path("/{product-class-id}")
fun updateProductClass(
@PathParam("product-class-id") productClassId: String,
productClass: ProductClass): Boolean {
return dataStore.updateProductClass(
productClass.copy(id = productClassId))
}
fun createProductClass(productClass: ProductClass) = adminDataStore.createProductClass(productClass)

// @PUT
// @Path("/{product-class-id}")
// fun updateProductClass(
// @PathParam("product-class-id") productClassId: String,
// productClass: ProductClass): Boolean {
// return adminDataStore.updateProductClass(
// productClass.copy(id = productClassId))
// }
}
17 changes: 3 additions & 14 deletions analytics/build.gradle
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
plugins {
id "org.jetbrains.kotlin.jvm" version "1.2.50"
id "application"
id "jacoco"
id "com.github.johnrengelman.shadow" version "2.0.4"
id "org.jetbrains.kotlin.jvm" version "1.2.41"
id "idea"
}

dependencies {
implementation project(':ocs-api')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
implementation 'com.google.cloud:google-cloud-pubsub:1.32.0'
implementation "com.google.cloud:google-cloud-pubsub:$googleCloudVersion"
implementation 'com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:2.4.0'
runtimeOnly 'org.apache.beam:beam-runners-google-cloud-dataflow-java:2.4.0'
implementation 'ch.qos.logback:logback-classic:1.2.3'
Expand All @@ -24,14 +23,4 @@ shadowJar {
version = null
}

jacocoTestReport {
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
additionalSourceDirs = files(sourceSets.main.allJava.srcDirs)
reports {
xml.enabled = true
html.enabled = true
}
}

check.dependsOn jacocoTestReport
apply from: '../jacoco.gradle'
6 changes: 1 addition & 5 deletions app-notifier/build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
plugins {
id "org.jetbrains.kotlin.jvm" version "1.2.50"
id "java-library"
id "jacoco"
id "com.github.johnrengelman.shadow" version "2.0.4"
id "org.jetbrains.kotlin.jvm" version "1.2.41"
id "idea"
id "project-report"
}

dependencies {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,16 @@ class FirebaseAppNotifier: AppNotifier {
val store = getResource<Storage>()

// This registration token comes from the client FCM SDKs.
val applicationToken = store.getNotificationToken(msisdn)
val applicationTokens = store.getNotificationTokens(msisdn)

if (applicationToken != null) {
for (applicationToken in applicationTokens) {

// ToDo : Currently we asume that all tokens are for FCM

// See documentation on defining a message payload.
val message = Message.builder()
.setNotification(Notification(title, body))
.setToken(applicationToken)
.setToken(applicationToken.token)
.build()

// Send a message to the device corresponding to the provided
Expand All @@ -54,8 +56,6 @@ class FirebaseAppNotifier: AppNotifier {
}

addCallback(future, apiFutureCallback)
} else {
println("Not able to fetch notification token for msisdn : $msisdn")
}
}
}
Loading

0 comments on commit 26653ea

Please sign in to comment.