Page MenuHomeSealhub

No OneTemporary

diff --git a/bin/node_modules/prometheus-base-chips/base-chips.js b/bin/node_modules/prometheus-base-chips/base-chips.js
index 5650d7eb..c78cb842 100644
--- a/bin/node_modules/prometheus-base-chips/base-chips.js
+++ b/bin/node_modules/prometheus-base-chips/base-chips.js
@@ -1,15 +1,15 @@
module.exports.prepare_field_type_text = require("./field-types/text.js");
module.exports.prepare_field_type_int = require("./field-types/int.js");
module.exports.prepare_field_type_date = require("./field-types/date.js");
-//module.exports.prepare_field_type_email = require("./field-types/email.js");
+module.exports.prepare_field_type_email = require("./field-types/email.js");
//user_data resource type
module.exports.prepare_resource_type_user_data = require("./resource-types/user_data.js")
//session_manager service
module.exports.prepare_service_session_manager = require("./services/session_manager.js")
module.exports.prepare_channel_http_session = require("./channels/http_session.js");
module.exports.prepare_channel_http = require("./channels/http.js");
module.exports.prepare_channel_www_server = require("./channels/www_server.js")
\ No newline at end of file
diff --git a/bin/node_modules/prometheus-base-chips/field-types/email.js b/bin/node_modules/prometheus-base-chips/field-types/email.js
index 74f1ab49..746cdce9 100644
--- a/bin/node_modules/prometheus-base-chips/field-types/email.js
+++ b/bin/node_modules/prometheus-base-chips/field-types/email.js
@@ -1,21 +1,21 @@
var Promise = require("bluebird");
module.exports = function(field_type_email){
- field_type_email.prototype.isProperValue = function(){
+ field_type_email.prototype.isProperValue = function(value){
return new Promise(function(resolve, reject){
- var address = this.email;
+ var address = value;
var regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- if(regex.test(address)){
+ if(!regex.test(address)){
reject(address + " is not valid e-mail address.");
} else {
resolve();
}
})
}
}
\ No newline at end of file
diff --git a/bin/node_modules/prometheus-base-chips/package.json b/bin/node_modules/prometheus-base-chips/package.json
index 924f236b..9e61a9cd 100644
--- a/bin/node_modules/prometheus-base-chips/package.json
+++ b/bin/node_modules/prometheus-base-chips/package.json
@@ -1,23 +1,24 @@
{
"name": "prometheus-base-chips",
"version": "0.0.0",
"description": "",
"main": "base-chips.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "BSD-2-Clause",
"prometheus-module-id": "base",
"prometheus-defined-chips": [
"field_type.int",
"field_type.date",
"field_type.text",
+ "field_type.email",
"field_type.Reference",
"resource_type.user_data",
"service.session_manager",
"channel.http",
"channel.www_server",
"channel.http_session"
]
}
diff --git a/bin/node_modules/prometheus-chip-manager/chip-manager.js b/bin/node_modules/prometheus-chip-manager/chip-manager.js
index b6f03766..0997db9b 100644
--- a/bin/node_modules/prometheus-chip-manager/chip-manager.js
+++ b/bin/node_modules/prometheus-chip-manager/chip-manager.js
@@ -1,75 +1,76 @@
var fs = require("fs");
var path = require('path')
var Set = require('Set');
//var Channel = require('prometheus-channel')
var channels = {};
//var channel_info = {};
var services = {};
//var service_info = {};
var resource_types = {};
var field_types = {};
var registred_chips_longids = new Set();
var Core = new function(){
this.register_channel = function(channel){
registred_chips_longids.add("channel." + channel.id);
channels[channel.id] = channel;
}
this.register_service = function(service){
registred_chips_longids.add("service." + service.id);
services[service.id] = service;
}
this.register_resource_type = function(resource_type){
registred_chips_longids.add("resource_type." + resource_type.id);
resource_types[resource_type.id] = resource_type;
}
this.register_field_type = function(field_type){
registred_chips_longids.add("field_type."+field_type.id);
field_types[field_type.id] = field_type;
}
this.get_chip_by_longid = function(longid){
var type = longid.split(".")[0];
var name = longid.split(".")[1];
return this["get_"+type](name);
}
this.chip_is_registred = function(chip_name){
return registred_chips_longids.has(chip_name);
}
this.get_channel = function(id){
//console.log("chnnels:", channels);
return channels[id] || null;
}
this.get_service = function(id){
return services[id] || null;
}
this.get_resource_type = function(id){
return resource_types[id];
}
this.get_field_type = function(id){
+ console.log("ChipMnager.js - got request for field_type", id);
return field_types[id];
}
this.getServices = function(){
return services;
}
}
module.exports = Core;
//!!important! export Core before importning Modules (circular dependency fail)
Modules = require("prometheus-module-manager");
diff --git a/bin/node_modules/prometheus-field-type/field-type.js b/bin/node_modules/prometheus-field-type/field-type.js
index 7c3e37ef..4dd11df4 100644
--- a/bin/node_modules/prometheus-field-type/field-type.js
+++ b/bin/node_modules/prometheus-field-type/field-type.js
@@ -1,38 +1,39 @@
var Promise = require("bluebird");
/**
* Stores field type metadata, as well as validation methods
* @class
*/
function FieldType(){
}
FieldType.prototype = new function(){
/**
* Whether a given value can be stored in this field type instance
* @memberOf FieldType
* @abstract
* @param {any} value value of this variable will be tested for compatibility with this field
* @return {Promise}
*/
this.isProperValue = function(value){
+ console.log("field-type.js foka")
return new Promise(function(resolve, reject){
- resolve();
+ resolve(value);
});
}
this.encode = function(value_in_code){
return new Promise(function(resolve, reject){
resolve(value_in_code);
})
}
this.decode = function(value_in_database){
return new Promise(function(resolve, reject){
resolve(value_in_database);
})
}
}
module.exports = FieldType;
\ No newline at end of file
diff --git a/bin/node_modules/prometheus-resource-type/resource-type-field.js b/bin/node_modules/prometheus-resource-type/resource-type-field.js
index 663d30f3..8136cc27 100644
--- a/bin/node_modules/prometheus-resource-type/resource-type-field.js
+++ b/bin/node_modules/prometheus-resource-type/resource-type-field.js
@@ -1,72 +1,76 @@
var Promise = require("bluebird");
var ChipManager = require("prometheus-chip-manager");
/**
* A field in a resource type
* @class
* @param {string} name
* @param {object} options
*/
function ResourceTypeField(declaration){
this.name = declaration.name;
this.type_name = declaration.type;
- var type_constructor = ChipManager.get_chip_by_longid("field_type." + declaration.type);
+ var type_constructor = ChipManager.get_field_type(declaration.type);
this.type_arguments = declaration.arguments;
this.type = new type_constructor(declaration.arguments);
this.required = declaration.required || false;
this.derived = declaration.derived || false;
}
ResourceTypeField.prototype = new function(){
/**
* Shorthand for ResourceTypeField.type.isProperValue
* @alias ResourceTypeField#isProperValue
* @param {object} value
* @return {Promise}
*/
this.isProperValue = function(value, dispatcher){
var that = this;
return new Promise(function(resolve, reject){
that.type.isProperValue(value, dispatcher).then(
resolve,
function(err){
- reject("error for field `" + that.name + "`: " + err);
+ var new_error = {
+ field_name: that.name,
+ error_message: err
+ }
+ reject(new_error);
}
);
})
}
/**
* Encodes a value for this field so it can be stored safey in database. Reverse of @link ResourceTypeField#decodeValue
* @alias ResourceTypeField#encodeValue
* @param {any} value
* @param {Boolean} as_hashmap
* @return {Promise}
*/
this.encode_value = function(value, as_hashmap){
//console.log("encode value", value);
var that = this;
return this.type.encode(value).then(function(encoded_value){
var ret_promise = new Promise(function(resolve, reject){
if(as_hashmap){
var ret = {};
ret[that.name] = encoded_value;
resolve(ret);
}else{
resolve(encoded_value);
}
})
return ret_promise;
});
}
/**
* @alias ResourceTypeField#decodeValue
* @todo Zaimplementować tę funkcję
*/
this.decodeValue = function(){
}
}
module.exports = ResourceTypeField;
\ No newline at end of file
diff --git a/bin/node_modules/prometheus-resource-type/resource-type.js b/bin/node_modules/prometheus-resource-type/resource-type.js
index eb868c52..0b69ced7 100644
--- a/bin/node_modules/prometheus-resource-type/resource-type.js
+++ b/bin/node_modules/prometheus-resource-type/resource-type.js
@@ -1,57 +1,71 @@
var Promise = require("bluebird");
var ResourceTypeField = require("./resource-type-field.js");
var merge = require("merge");
var ResourceType = function(name){
this.id = name;
this.name = name;
this.fields = {};
}
ResourceType.prototype = new function(){
this.add_field = function(field_declaration){
var field_object = new ResourceTypeField(field_declaration);
var field_name = field_object.name;
if(!this.fields[field_name]){
this.fields[field_name] = field_object;
}
- }
+ }
this.add_fields = function(field_declarations_array){
for(var i in field_declarations_array){
var declaration = field_declarations_array[i];
this.add_field(declaration);
}
}
this.validate_field_values = function(values){
+ var that = this;
return new Promise(function(resolve, reject){
- for(var i in this.fields){
- var field = this.fields[i];
- if(field.required && !value[field.name]){
+ for(var i in that.fields){
+ var field = that.fields[i];
+ if(field.required && !values[field.name]){
reject(new Error("required field missing:" + field.name))
return;
}
}
- resolve();
+ var promise_array = [];
+ for(var field_name in values){
+ var temp_promise = that.fields[field_name].isProperValue(values[field_name]);
+ promise_array.push(temp_promise);
+ }
+
+ Promise.all(promise_array)
+ .then(function(result){
+ resolve();
+ })
+ .catch(function(error){
+ reject(error);
+ });
+
})
}
this.encode_field_values = function(body){
console.log("###########encoding body:", body);
var promises = [];
for(var field_name in body){
var current_value = body[field_name];
promises.push(this.fields[field_name].encode_value(current_value, true));
}
return Promise.all(promises).then(function(responses){
return new Promise(function(resolve, reject){
resolve(merge.apply(merge, responses));
})
});
}
}
module.exports = ResourceType;
\ No newline at end of file
diff --git a/bin/prometheus-modules/chat/chat.js b/bin/prometheus-modules/chat/chat.js
index 5b69b0ba..05edb5c0 100644
--- a/bin/prometheus-modules/chat/chat.js
+++ b/bin/prometheus-modules/chat/chat.js
@@ -1,75 +1,75 @@
module.exports.prepare_resource_type_chat_message = function(chat_message){
chat_message.add_fields([
- {name: "from", type: "text", required:true},//should be an association to User
+ {name: "from", type: "text" },//should be an association to User | was "required: true"
{name: "message", type: "text", required: true},
{name: "date", type: "date"},
{name: "order_in_conversation", type: "int"},
{name: "conversation_id", type: "int"},
]);
}
module.exports.prepare_resource_type_chat_conversation = function(chat_conversation){
chat_conversation.add_fields([
{name: "title", type: "text", required: true},
{name: "random_number", type: "int"},
{name: "user1", type: "Reference"},
{name: "user2", type: "Reference"}
]);
}
//ten kod nie jest wykorzystywany
module.exports.construct_associations = function(AssocInterface){
AssocInterface.create({
left_type: "chat-message",
right_type: "chat-conversation",
bidirectional: true,
name_ltr: "is_in_conversation",
name_rtl: "contains_messages",
left_required: true
});
}
module.exports.prepare_channel_rest = function(rest){
rest.add_path("/api/v1/chat/message", "chat_message");
rest.add_path("/api/v1/chat/conversation", "chat_conversation");
}
module.exports.prepare_channel_www_server = function(www_server, dispatcher, dependencies){
var Promise = require("bluebird");
www_server.route({
method: "GET",
path: "/api/v1/chat/conversation/{id}/messages",
handler: function(request, reply){
dispatcher.resources_find({conversation_id: parseInt(request.params.id)}, "chat_message")
.then(function(resources){
reply(resources);
})
}
});
www_server.route({
method: "GET",
path: "/api/v1/chat/conversation/mine",
handler: function(request, reply){
var me = www_server.get_user_id(request.state.PrometheusSession);
me = me.toString();
console.log(me);
var p1 = dispatcher.resources_find({user2: me}, "chat_conversation");
var p2 = dispatcher.resources_find({user1: me}, "chat_conversation");
var p3 = dispatcher.resources_search_by_mode("chat_conversation", "public");
Promise.all([p1,p2,p3]).then(function(response){
console.log(response);
reply(response);
})
/* dispatcher.resources_find({user2: me}, "chat_conversation").then(function(response){
reply(response);
});
*/
}
});
}
\ No newline at end of file
diff --git a/bin/prometheus-modules/contact-list/contact-list.js b/bin/prometheus-modules/contact-list/contact-list.js
index 6e1189f9..f0883539 100644
--- a/bin/prometheus-modules/contact-list/contact-list.js
+++ b/bin/prometheus-modules/contact-list/contact-list.js
@@ -1,31 +1,31 @@
var path = require("path");
module.exports.prepare_resource_type_contact = function(chat_conversation){
chat_conversation.add_fields([
{name: "name", type: "text", required: true},
- {name: "email", type: "text", required: true},
+ {name: "email", type: "email", required: true},
{name: "phone_number", type:"text"}
]);
}
module.exports.prepare_channel_rest = function(rest){
rest.add_path("/api/v1/chat/contacts", "contact");
// rest wie, żeby powiązać ten url z tym typem zasobu i na nim wywoływać GET i POST
}
module.exports.prepare_channel_www_server = function(channel){
var public_dir = path.resolve(module.filename, "../../../../public");
channel.static_route(public_dir, "");
}
/*
1. contact-list.js
2. rest.js
3. www-server.js
4. dispatcher-web
5. dispatcher-biz
6. dispatcher-db
*/
\ No newline at end of file
diff --git a/bin/prometheus-modules/rest/rest.js b/bin/prometheus-modules/rest/rest.js
index bb225e0f..7bbaa91c 100644
--- a/bin/prometheus-modules/rest/rest.js
+++ b/bin/prometheus-modules/rest/rest.js
@@ -1,98 +1,102 @@
module.exports.prepare_channel_rest = function(channel, dispatcher, dependencies){
//console.log("\nREST dependencies:", dependencies);
var www_server = dependencies["channel.www_server"];
channel.add_path = function(url, resource_type_name){
www_server.route({
method: "GET",
path: url,
handler: function(request, reply){
dispatcher.resources_list_by_type(resource_type_name)
.then(function(resources){ // wywołanie metody z dispatchera webowego
//console.log("GOT RESPONSE FROM DISPATCHER");
//var resources_arr = resources.map(function(resource){return resource.getData()});
reply(resources);
});
}
// hanlder GET ma wypisać wszystkie zasoby o podanym typie
});
www_server.route({
method: "POST",
path: url,
handler: function(request, reply){
var id_by_session = www_server.get_user_id(request.state.PrometheusSession);
if(id_by_session){
- dispatcher.resources_create(resource_type_name, request.payload, id_by_session).then(function(response){
+ dispatcher.resources_create(resource_type_name, request.payload, id_by_session)
+ .then(function(response){
reply(response.toString());
+ })
+ .catch(function(error) {
+ reply(error).statusCode = 422;
});
} else {
reply("not logged in");
}
}
// handler POST ma stworzyć zasób z podanymi wartościami
});
www_server.route({
method: "DELETE",
path: url,
handler: function(request, reply){
//console.log("rest.js DELETE", request.payload)
dispatcher.resources_delete(resource_type_name, request.payload).then(function(response){
reply();
});
}
// handler POST ma stworzyć zasób z podanymi wartościami
});
www_server.route({
method: "GET",
path: url+"/{id}",
handler: function(request, reply){
//console.log("rest.js get_resource_by_id", request.params.id);
dispatcher.resources_get_by_id(request.params.id).then(function(response){
reply(response);
}).catch(function(error){
reply().statusCode = 409;
});
}
});
www_server.route({
method: "PUT",
path: url+"/{id}/access_mode",
handler: function(request, reply){
//console.log("rest.js get_resource_by_id", request.params.id, request.payload.access_mode, request.payload.access_mode_args);
dispatcher.resources_edit_resource_access_mode(request.params.id, request.payload.access_mode, request.payload.access_mode_args).then(function(response){
reply(response);
});
}
});
www_server.route({
method: "PUT",
path: url+"/{id}",
handler: function(request, reply){
//console.log("rest.js get_resource_by_id", request.params.id, request.payload.access_mode, request.payload.access_mode_args);
dispatcher.resources_update(request.params.id, request.payload).then(function(response){
reply(response);
});
}
});
www_server.route({
method: "GET",
path: url+"/{id}/access_mode",
handler: function(request, reply){
//console.log("rest.js get_resource_access_mode_by_id");
dispatcher.resources_get_access_mode(request.params.id).then(function(response){
reply(response);
});
}
});
}
}
\ No newline at end of file

File Metadata

Mime Type
text/x-diff
Expires
Sat, Nov 8, 13:03 (13 h, 10 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1034612
Default Alt Text
(18 KB)

Event Timeline