Skip to content

Instantly share code, notes, and snippets.

@billydh
billydh / update_user.py
Last active January 20, 2024 05:51
A Python script to update user details (email, mobile number and display name) via Firebase Admin SDK
import argparse
from firebase_admin import auth
from firebase_admin.auth import UserRecord
from initialise_firebase_admin import app
def get_args():
parser = argparse.ArgumentParser(description="Update user details in Firebase")
@billydh
billydh / create_user.py
Created March 10, 2020 04:14
A Python script to create a new user using Firebase Admin SDK
import argparse
from typing import Optional
from firebase_admin import auth
from firebase_admin.auth import UserRecord
from initialise_firebase_admin import app
def get_email_arg():
@billydh
billydh / initialise_firebase_admin.py
Created March 9, 2020 11:39
Initialise Firebase admin app using the Python Firebase Admin SDK
import firebase_admin
app = firebase_admin.initialize_app()
if __name__ == "__main__":
print(app)
@billydh
billydh / build.gradle.kts
Created March 2, 2020 04:11
Final build gradle file including all Kafka and Avro dependencies
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
plugins {
id("org.springframework.boot") version "2.2.2.RELEASE"
id("io.spring.dependency-management") version "1.0.8.RELEASE"
kotlin("jvm") version "1.3.61"
kotlin("plugin.spring") version "1.3.61"
}
@billydh
billydh / CustomerHandler.kt
Created March 2, 2020 03:36
CustomerHandler class with KafkaPublisher
package io.codebrews.kotlinkafkadynamodemo
import io.codebrews.createuserrequest.CreateUserRequest
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component
import org.springframework.web.reactive.function.server.ServerRequest
import org.springframework.web.reactive.function.server.ServerResponse
import org.springframework.web.reactive.function.server.json
import reactor.core.publisher.Mono
@billydh
billydh / CreateUserRequestHandler.kt
Last active March 2, 2020 03:59
A handler class to process CreateUserRequest message from Kafka topic
package io.codebrews.kotlinkafkadynamodemo
import io.codebrews.createuserrequest.CreateUserRequest
import io.codebrews.usercreatedevent.UserCreatedEvent
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component
import reactor.core.publisher.Mono
import java.time.Instant
import java.util.*
@billydh
billydh / KafkaListener.kt
Last active March 23, 2020 09:58
A reactive Kafka Consumer built using project reactor kafka library
package io.codebrews.kotlinkafkadynamodemo
import io.codebrews.createuserrequest.CreateUserRequest
import io.confluent.kafka.serializers.KafkaAvroDeserializerConfig
import org.apache.kafka.clients.consumer.ConsumerConfig
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.context.annotation.Bean
import org.springframework.stereotype.Component
import reactor.core.Disposable
@billydh
billydh / build.gradle.kts
Created February 27, 2020 22:54
Kotlin gradle build file with commercehub avro plugin setup
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
plugins {
id("org.springframework.boot") version "2.2.2.RELEASE"
id("io.spring.dependency-management") version "1.0.8.RELEASE"
kotlin("jvm") version "1.3.61"
kotlin("plugin.spring") version "1.3.61"
}
{
"namespace": "io.codebrews.usercreatedevent",
"type": "record",
"name": "UserCreatedEvent",
"fields": [
{
"name": "userId",
"type": "string"
},
{
{
"namespace": "io.codebrews.createuserrequest",
"type": "record",
"name": "CreateUserRequest",
"fields": [
{
"name": "email",
"type": "string"
},
{